В чем разница между «Сравнить с версией Workspace» и «Сравнить с последней версией»?

91

Я использую Visual Studio 2012 с TFS. Каждый раз, когда я хочу сравнить свои извлеченные файлы, у меня есть два варианта на выбор:

  1. Сравнить с версией рабочего места
  2. Сравните с последней версией

снимок экрана

В чем разница ?

Билал Фазлани
источник

Ответы:

78

Сравнить с последней версией кажется ясным. Он сравнивает файлы с последней версией в TFS. Таким образом, вы получите все различия между самой последней версией, зарегистрированной в системе управления версиями, и любой папкой, с которой вы сравниваете.

Сравнение с версией Workspace может сбивать с толку, но на самом деле это довольно просто. TFS отслеживает версию файла, который вы загрузили в свою рабочую область. Это , как правило , последняя версия, или очень близко к этому , но это не должно быть так .

Используя эту Get Specific Versionопцию, вы можете получить любую версию файла в вашу локальную рабочую область. Вы даже можете загружать файлы из разных версий в свое рабочее пространство. При выборе этого параметра будет выполнено сравнение с версией, которая в настоящее время находится в вашей рабочей области.

Сравнить экран

веселый
источник
«Когда вы выбираете этот вариант, будет выполнено сравнение с версией, которая в настоящее время находится в вашей рабочей области». сравнение с чем?
Билал Фазлани
С версией на диске по умолчанию. Или какую бы версию вы ни выбрали в качестве целевого пути. В конце концов, вы несете полную ответственность за выбор исходной и целевой версии для сравнения.
jessehouwing
2
В последней версии набора изменений вы загрузили в выбранную рабочую область все, что в данный момент находится на диске.
jessehouwing
2
Для большей ясности, получение версии рабочей области может отличаться от последней или такой же, как последняя. Это полностью зависит от того, что вы снесли из хранилища
Callat
1
Пример: вы в команде и 5 мая получаете файл. Вы изменяете его, но не регистрируетесь. 5 мая вы сравниваете с последней версией и видите, что обнаруживаете больше различий, чем ожидалось: это потому, что кто-то другой внес больше изменений в тот же файл. Но если вы сравните с версией Workspace, вы увидите только различия между вашими локальными изменениями и тем, каким был исходный файл, КОГДА ВЫ ПОЛУЧИЛИ ЕГО изначально. Очень полезно проверить, что ТОЛЬКО вы изменили ...
Роджер
79
  • Сравнение с версией рабочей области фактически сравнивает отредактированный файл с версией файла на момент извлечения (сравнивает исключительно ваши изменения).

  • При сравнении с последней версией отредактированный файл сравнивается с последней версией файла, находящегося в вашем репозитории кода, т.е. он может включать изменения, внесенные вашими коллегами .

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

Серхио
источник
1
serhio, вы и @jessehouwing заявляете о противоречивом поведении для типа сравнения Версия рабочей области. Похоже, он заявляет, что будет использоваться последняя версия файла, если сама рабочая область настроена на использование последней версии. Однако то, что вы говорите, подразумевает, что исходный файл не обязательно может быть последней версией, но версией файла во время проверки?
samis
2
Это лучшее простейшее объяснение. Workspace не получает последнюю версию с сервера автоматически. Он сохраняет последний полученный файл. Итак, допустим, вы получили последнюю версию, отредактируйте файл. Тем временем ваш со-разработчик зарегистрировался, когда вы получили последнюю информацию. Ваша рабочая область не знает об изменениях, отмеченных вашим соразработчиком. На этом этапе сравнение с рабочей областью и сравнение с последней версией будет отличаться.
SKCS Kamal
5

@ serhio 3/28/14 ответ - отличный повествовательный ответ. Тем не менее, я уверен, что многим (включая меня) это необходимо подкрепить примером, и вот он:

  1. Для всех «Последняя версия» = Набор изменений №1.
  2. Вы «получите последние новости».
  3. Для вас «Версия рабочей области» = Набор изменений №1.
  4. Вы вносите изменения.
  5. Разработчик B "Get Latest".
  6. Для разработчика B «Версия рабочей области» также = Набор изменений №1.
  7. Разработчик B вносит изменения.
  8. Застройщик Б «Заезд».
  9. Для всех «Последняя версия» = Набор изменений №2.
  10. Для разработчика B «Версия рабочей области» = Набор изменений №2.
  11. Для вас "Версия рабочего пространства" все еще = Набор изменений №1.
  12. Вы «Получить последнюю информацию», «Объединить конфликты» (при необходимости) и «Отметиться».
  13. Для всех «Последняя версия» = Набор изменений №3.
  14. Для вас «Версия рабочей области» = Набор изменений №3.
  15. Для разработчика B «Версия рабочей области» по- прежнему = Набор изменений №2.
Том
источник
0

Чтобы повторить ответ:

Вы всегда работаете над локальным файлом.

Файл сервера может быть:

  1. Последняя версия, включая все остальные отметки. (Вы видите свои изменения, а также изменения других людей .)

  2. Версия, которая была на момент получения (вы видите только свои изменения, даже если с тех пор зарегистрировались другие люди).

Если с момента оформления заказа другие люди не регистрируют файлы, то и то, и другое дает точно такой же результат.

Поэтому, если вы хотите сравнить то, что вы сделали, с тем, что было в начале, выберите Версия рабочей области.

Если вы хотите сравнить свои действия с тем, что сделали другие люди, выберите « Последняя версия».

Грег Гам
источник