Was ist der Unterschied zwischen "Mit Workspace-Version vergleichen" und "Mit der neuesten Version vergleichen"?

90

Ich verwende Visual Studio 2012 mit TFS. Wann immer ich meine ausgecheckten Dateien vergleichen möchte, habe ich zwei Möglichkeiten zur Auswahl:

  1. Vergleichen Sie mit der Workspace-Version
  2. Vergleiche mit der neuesten Version

Bildschirmfoto

Was ist der Unterschied ?

Bilal Fazlani
quelle

Antworten:

77

Vergleich mit der neuesten Version scheint klar. Es vergleicht Dateien mit der neuesten Version in TFS. So erhalten Sie alle Unterschiede zwischen der neuesten Version, die in der Quellcodeverwaltung überprüft wurde, und dem Ordner, mit dem Sie vergleichen.

Der Vergleich mit der Workspace-Version mag verwirrend sein, ist aber eigentlich ziemlich einfach. TFS verfolgt die Version der Datei, die Sie in Ihrem Arbeitsbereich abgerufen haben. Dies ist normalerweise die neueste Version oder ziemlich nahe daran , aber das muss nicht der Fall sein .

Wenn Sie die Get Specific VersionOption verwenden, können Sie eine beliebige Version einer Datei in Ihren lokalen Arbeitsbereich abrufen. Sie können sogar Dateien aus verschiedenen Versionen in Ihren Arbeitsbereich abrufen. Wenn Sie diese Option auswählen, wird ein Vergleich mit der Version durchgeführt, die sich derzeit in Ihrem Arbeitsbereich befindet.

Bildschirm vergleichen

jessehouwing
quelle
"Wenn Sie diese Option auswählen, wird ein Vergleich mit der Version durchgeführt, die sich derzeit in Ihrem Arbeitsbereich befindet." Vergleich mit was?
Bilal Fazlani
Standardmäßig mit der Version auf der Festplatte. Oder welche Version Sie auch immer als Zielpfad auswählen. Am Ende sind Sie letztendlich dafür verantwortlich, die Quell- und die Zielversion für einen Vergleich auszuwählen.
Jessehouwing
2
Mit der Änderungssatzversion, die Sie zuletzt mit dem, was sich derzeit auf der Festplatte befindet, in den ausgewählten Arbeitsbereich heruntergeladen haben.
Jessehouwing
2
Um weitere Klarheit zu schaffen, kann sich das Abrufen einer Workspace-Version von der neuesten oder der neuesten Version unterscheiden. Es hängt ganz davon ab, was Sie aus Ihrem Repository
abgerufen haben
1
Beispiel: Sie sind in einem Team und erhalten am 3/5 eine Datei. Sie ändern es, checken aber nicht ein. Am 5. Mai vergleichen Sie es mit der letzten Version und stellen fest, dass Sie mehr Unterschiede als erwartet feststellen: Dies liegt daran, dass jemand anderes mehr Änderungen an derselben Datei vorgenommen hat. Wenn Sie jedoch mit der Workspace-Version vergleichen, erhalten Sie nur die Unterschiede zwischen Ihren lokalen Änderungen und dem Zustand der Quelldatei, als Sie sie ursprünglich abgerufen haben. Sehr nützlich, um zu überprüfen, was NUR Sie geändert hatten ...
Roger
79
  • Beim Vergleich mit der Arbeitsbereichsversion wird die bearbeitete Datei tatsächlich mit der Version der Datei zum Zeitpunkt des Auscheckens verglichen (vergleicht ausschließlich Ihre Änderungen).

  • Beim Vergleich mit der neuesten Version wird die bearbeitete Datei mit der neuesten Version der Datei verglichen, die in Ihrem Code-Repository vorhanden ist, dh sie kann Änderungen enthalten, die von Ihren Kollegen vorgenommen wurden .

http://codereferences.blogspot.ca/2012/03/tfs-compare-with-workspace-version.html

serhio
quelle
1
serhio, Sie und @jessehouwing geben widersprüchliche Verhaltensweisen für den Vergleichstyp der Workspace-Version an. Klingt so, als würde er angeben, dass die neueste Version der Datei verwendet wird, wenn der Arbeitsbereich selbst für die Verwendung der neuesten Version konfiguriert ist. Was Sie jedoch sagen, bedeutet, dass die Quelldatei möglicherweise nicht unbedingt die neueste Version ist, sondern die Version der Datei während des Auscheckens?
Samis
2
Dies ist die einfachste Erklärung. Workspace ruft die neueste Version nicht automatisch vom Server ab. Es behält die Datei, die Sie zuletzt erhalten haben. Nehmen wir also an, Sie erhalten die neueste Version und bearbeiten die Datei. In der Zwischenzeit hat Ihr Mitentwickler eingecheckt, nachdem Sie die neuesten Informationen erhalten haben. Ihr Arbeitsbereich kennt die eingecheckten Änderungen Ihres Mitentwicklers nicht. Zu diesem Zeitpunkt unterscheidet sich das Vergleichen mit dem Arbeitsbereich und das Vergleichen mit der neuesten Version.
SKCS Kamal
5

Die Antwort von @ serhio vom 28.03.14 ist eine ausgezeichnete narrative Antwort. Ich bin mir jedoch sicher, dass viele (einschließlich ich) dies mit einem Beispiel untermauern müssen, und hier ist es:

  1. Für alle ist "Lastest Version" = Changeset # 1.
  2. Sie "Get Latest".
  3. Für Sie ist "Workspace Version" = Änderungssatz Nr. 1.
  4. Sie nehmen Änderungen vor.
  5. Entwickler B "Get Latest".
  6. Für Entwickler B ist "Workspace Version" ebenfalls = Änderungssatz 1.
  7. Entwickler B nimmt Änderungen vor.
  8. Entwickler B "Einchecken".
  9. Für alle ist "Lastest Version" = Changeset # 2.
  10. Für Entwickler B ist "Workspace Version" = Änderungssatz 2.
  11. Für Sie ist "Workspace Version" immer noch = Änderungssatz Nr. 1.
  12. Sie "Get Latest", "Merge Conflicts" (falls erforderlich) und "Check-in".
  13. Für alle ist "Lastest Version" = Changeset # 3.
  14. Für Sie ist "Workspace Version" = Changeset # 3.
  15. Für Entwickler B ist "Workspace Version" immer noch = Änderungssatz 2.
Tom
quelle
0

Um die Antwort noch einmal zu wiederholen:

Die lokale Datei ist immer die, an der Sie arbeiten.

Die Serverdatei kann entweder sein:

  1. Die neueste Version einschließlich aller anderen Check-Ins. (Sie sehen Ihre Veränderungen sowie die Veränderungen anderer Menschen .)

  2. Die Version, wie sie beim Auschecken war (Sie sehen nur Ihre Änderungen, auch wenn andere Personen seitdem eingecheckt haben).

Wenn seit dem Auschecken keine anderen Personen Dateien einchecken, erzielen beide oben genannten Ergebnisse genau das gleiche Ergebnis.

Wenn Sie also vergleichen möchten, was Sie getan haben, mit dem, was Sie zu Beginn hatten, wählen Sie Workspace-Version

Wenn Sie vergleichen möchten, was Sie getan haben, mit dem, was andere Personen getan haben, wählen Sie Neueste Version

Greg Gum
quelle