2012-03-30 16 views
4

Wir haben ein paar Entwickler, die für die manuelle Zusammenführung in TFS 2010 sind, wenn Sie zwei Visual Studios öffnen, eines mit dem Quellzweig und eines mit dem Zielzweig und Sie kopieren manuell & Ihre Änderungen einfügen.Wie funktioniert die TFS-Zusammenführung?

Sie tun es auf diese Weise, weil sie glauben, dass eine automatische Zusammenführung gefährlich ist (da sie Änderungen anderer Entwickler einbringt, selbst wenn Sie nicht möchten). Und der typische Testfall folgt:

Quelle Branche:

TestFile.cs 
Changesets: 
1. Line 5 changed 
2. Line 13 changed 

Zielbranchen:

No changes yet. 

Nun möchte Ich mag nur changeset 2 # verschmelzen für den Testfile. cs

Welche Linien würden die resultierenden Tes tFile.cs im Zielzweig enthalten, wenn automatisch zusammengeführt: die ursprüngliche Zeile 5 und die geänderte Zeile 13 oder beide Zeilen 5 und 13 geändert?

In der Tat habe ich beide Varianten gesehen und ich weiß nicht warum.

Jeder Link zu einer großen Beschreibung, wie genau TFS merge funktioniert, wäre großartig zu haben.

Erweiterte Szenario: Quelle Branche:

TestFile.cs 
Changesets: 
#1. Line 5 changed, Line 6 added 
#2. Line 13 changed 

Zielbranchen:

No changes yet. 

Wenn ich nur changeset # 2 fusionieren, was soll ich in den Zielbranchen bekommen? Werde ich nur die Leitung 12 entsprechend dem Änderungssatz # 2 ändern lassen.

Antwort

5

Wenn Sie zusammenführen auswählen, wird der folgende Dialog öffnen:
enter image description here
Wenn Sie einfach auf „Weiter“ auswählen und bewahren Sie die Standardeinstellung = „Alle Änderungen bis zu einer bestimmten Version“, TFS berücksichtigt werden beide Ihre Änderungssets (1 & 2): mit anderen Worten, es wird Testfile.cs im Zielzweig auschecken und bearbeiten beide Zeile 5 & 13.
Wenn Sie "Selected Changesets" auswählen (wie in der Abbildung oben markiert), wird ein weiterer Dialog erscheinen, wo Sie wählen können, welche der Kandidaten-Änderungsmengen Sie tatsächlich an der Zusammenführung teilnehmen möchten. Also, wenn Sie jetzt changeset 2 wählen, TFS wird Testfile.cs in der Ziel-Zweig & nur Linie 13 bearbeiten.

Was Sie als 'manuelle' Zusammenführung beschreiben, ist - Entschuldigung für die Ausführlichkeit - eine schreckliche Praxis.

bearbeiten
Auf Ihre Frage erweiterte Szenario: Source Branche: Bekomme ich nur die Linie 13 geändert nach dem changeset # 2
Die Antwort ist ein klares „Ja“.

Eine Möglichkeit, die Situation zu isolieren, ist mit einem Playground-Ordner innerhalb von SourceControl & mit Ihren Kollegen zu versuchen, zu identifizieren, was passiert.TFS-Merge ist wirklich einfach, this älteren Beitrag könnte für Ihre Untersuchungen nützlich sein.

Ich kann Ihnen zustimmen, dass "TFS Bugs auf meiner Prioritätenliste sehr niedrig sind", auf der anderen Seite - an Ihrer Stelle - würde ich die Merge-Practice in Ihrer Organisation als oberste Priorität untersuchen. Was du beschreibst, kann meiner Meinung nach einfach nicht weitergehen.

+0

Das Problem ist, während ich nur eine Änderungsmenge auswählte, bekam ich Änderungen, die nicht der Teil dieser Änderungsmenge waren. Es ist jedoch nicht immer der Fall, tatsächlich passiert es nur manchmal und ich weiß nicht warum (teilweise verursacht durch schreckliche Praktiken), aber es gibt ein anderes Problem. Ich versuche TFS-Merge auf der niedrigen Ebene zu verstehen, um genug Argumente zu bekommen, um schreckliche Praktiken zu verbieten. – BanditoBunny

+0

"Änderungen, die nicht Teil dieses Changesets waren", ist meiner Meinung nach nicht möglich. Wenn Sie eine solche Situation feststellen, ist es entweder ein TFS-Fehler, den Sie MS melden sollten, oder ein Missbrauch. – pantelif

+0

Ich habe es gestern mit eigenen Augen gesehen. Da TFS-Fehler auf meiner Prioritätenliste sehr niedrig sind, werde ich sie nicht weiter testen. Mein Problem ist, dass "manuelle Zusammenführung" Jungs dies als Rechtfertigung für ihre Praxis verwenden. Und ich möchte verstehen, was ein solches Verhalten verursachen kann. Meine erste Idee wäre, dass die nicht angepassten Änderungsmengen der Grund dafür sind, dass TFS die Zusammenführung nicht ordnungsgemäß verarbeiten kann. Eine andere Idee wäre, dass strukturelle Änderungen in der Datei (neue Zeilen, entfernte Zeile) + selektives Zusammenführen basierend auf Änderungsmengen TFS zu Fehlfunktionen führt. – BanditoBunny