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.
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
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.
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 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.
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.
Tags und Links tfs visual-studio-2010 visual-studio tfs2010