Team Foundation Server - Zuvor zusammengeführte Changesets werden im Zusammenführungsassistenten wieder angezeigt

8

Unsere SCM-Struktur ist die folgende:

%Vor%

Entwickler checken in main ein. Wenn wir veröffentlichen möchten, wählen wir Mischungsänderungssets von Main zu Release aus, testen und führen unser Deployment-Build aus, das die Anwendung erstellt und bereitstellt und den Release-Zweig als solches kennzeichnet.

Zum Zusammenführen würde ich mit dem Source Control Explorer mit der rechten Maustaste auf 'Main' & gt; Verzweigen und Zusammenführen & gt; Verschmelzen. Wählen Sie 'Selected Changesets' Es gibt nur einen Zielzweig (Release). Wählen Sie die Änderungssets aus, testen Sie lokal und checken Sie in Release ein. Das hat seit Monaten gut funktioniert.

Heute sind jedoch einige sehr frühe Änderungsmengen im Quellcodeverwaltungsassistenten oben in der Liste erschienen. Aber bizarr, nicht alle.

Der entsprechende CLI-Befehl ist

%Vor%

Dieser Befehl gibt die folgende Liste zurück:

%Vor%

Der einzige 'Hinweis' ist das Sternchen, was meiner Meinung nach bedeutet, dass eine teilweise Zusammenführung bereits abgeschlossen ist.

Ich bin total überrascht darüber, wie das passieren könnte. Auf dem Server wurde keine Administration ausgeführt. Es ist innerhalb der letzten 6 Stunden oder so passiert.

Wenn ich eine Zusammenführung in meinem Arbeitsbereich versuche, bekomme ich keine Konflikte und, naja, ich bin mir nicht sicher, was passieren würde, wenn ich mich einchecke. Offensichtlich haben sich die Dateien und die Struktur in zwei Jahren stark verändert!

Ich kann den Befehl tf merge / discard verwenden, um sie "weggehen" zu lassen, aber ich würde gerne auf den Grund von kommen, warum es passierte, für meine eigene Neugier, wenn nichts anderes.

TIA

Aktualisierung:

Ich habe gewählt, die Changesets, die mit dem folgenden Befehl erschienen sind, zu verwerfen:

%Vor%

Dies führte zu einer Auswahl ausstehender Änderungen in meinem Arbeitsbereich, die ich ordnungsgemäß eingecheckt habe.

Leider, wenn ich

starte %Vor%

Ich habe jetzt noch mehr historische Änderungen, die auf "Merge" warten, einschließlich derjenigen, die ich im ersten Versuch zu verwerfen versuchte:

%Vor%

Ich habe wirklich keine Ahnung, was das verursacht hat. Jeder Rat geschätzt.

    
Jamie 02.02.2012, 18:59
quelle

3 Antworten

5

Sie haben Recht, das "*" bedeutet, dass einige Dateien in changset 3 zu "release" zusammengeführt wurden und andere nicht. Dies wird in der Regel dadurch erschwert, dass die Dateien im Fenster "Ausstehende Änderungen" beim Zusammenführen nicht geprüft werden.

Haben Sie kürzlich ein Upgrade von TFS 2008 durchgeführt? Wir hatten die gleiche Situation nach unserem Upgrade. Wenn Sie in TFS 2008 eine Datei aus einem Merge-Check-In entfernt haben, ging TFS davon aus, dass Sie diese Datei niemals jemals zusammenführen wollten! Die einzige Möglichkeit, die ungeprüften Dateien aufzuheben, bestand darin, zur Befehlszeile zu wechseln und tf merge /force

zu verwenden

In TFS 2010 hat sich das Verhalten geändert. Wenn Sie jetzt eine partielle Zusammenführung durchführen, erinnert TFS Sie immer daran, dass in einem teilweise zusammengeführten Changeset ausstehende Zusammenführungskandidaten vorhanden sind.

Sie können zwei Dinge tun.

  1. Fügen Sie die Changsets zusammen (es ist unwahrscheinlich, dass Sie dies in Anbetracht der Länge der Zeit tun möchten)
  2. benutze den Befehl tf merge /recursive /discard /version:C3~C139 [source] [destination] Dies teilt TFS mit, dass es denkt, dass es die Zusammenführung gemacht hat, obwohl es nicht
  3. ist
James Reed 02.02.2012 19:59
quelle
4

Wir haben festgestellt, dass der Grund für dieses Verhalten darin bestand, dass eine zuvor gelöschte Datei im Zweig "Main" in dem Sinne "wiederbelebt" wurde, dass eine neue Datei mit demselben Namen erstellt wurde.

In diesem Fall erschienen alle vorherigen Änderungsmengen, in denen diese Datei enthalten war, im Zusammenführungsdialog als partielle Änderungsmengen.

Eine vollständige Zusammenführung schien das Problem zu lösen.

    
Jamie 02.05.2012 10:39
quelle
0

Ich bin selbst auf ein ähnliches bizarres Verhalten gestoßen. Wir verwenden eine ähnliche Methodik wie das OP, nehmen aber bei Bedarf Änderungen an unseren Release-Zweigen vor.

Ich habe einige Änderungen von einer alten Version ("2.30") zu einer neuen Version ("2.31") über die Hauptversion zusammengefasst und als ich die Änderungen von der Hauptversion zur Version 2.31 zusammengeführt habe, sah ich ein paar Changesets im Merge Wizard von vor Jahren - einer davon war von 2011!

Ich habe dieses Verhalten noch nie zuvor gesehen und dachte, dass dieser Release Branch irgendwie magisch verdorben war und es abwerfen und eine neue Version an seiner Stelle schaffen würde.

Also habe ich alle Änderungen, die gemacht wurden, mit dem Versionszweig 2.31 wieder mit dem Main zusammengeführt und alles eingecheckt. Bevor ich einen neuen Zweig für 2.31 erstelle, dachte ich, ich würde den Merge Wizard nochmal versuchen (aus Main zusammenführen) zu 2.31), um zu sehen, ob das magisch aufräumte und es tat. Keiner dieser alten Changesets ist wieder aufgetaucht.

Sehr seltsam.

    
Frank Tzanabetis 03.03.2016 05:12
quelle