У чому різниця між "Порівняти з версією Workspace" та "Порівняти з останньою версією"?


90

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

  1. Порівняйте з версією робочої області
  2. Порівняйте з останньою версією

скріншот

Яка різниця ?

Відповіді:


77

Порівняння з останньою версією видається зрозумілим. Він порівнює файли з останньою версією TFS. Отже, ви отримаєте всі відмінності між останньою версією, перевіреною в елементі керування джерелом, і з будь-якою папкою, з якою ви порівнюєте.

Порівняння з версією Workspace може заплутати, але насправді досить просто. TFS відстежує версію файлу, який ви отримали у своєму робочому просторі. Це , як правило , остання версія, або дуже близько до цього , але це не повинно бути так .

Використовуючи цю Get Specific Versionопцію, ви можете отримати будь-яку версію файлу у свою локальну робочу область. Ви навіть можете завантажувати файли з різних версій у свою робочу область. Коли ви виберете цей параметр, буде проведено порівняння з версією, яка наразі знаходиться у вашій робочій області.

Екран порівняння


"Коли ви виберете цей параметр, буде проведено порівняння з версією, яка наразі знаходиться у вашій робочій області." порівняння з чим?
Білал Фазлані,

З версією на диску за замовчуванням. Або яку б версію ви не вибрали як цільовий шлях. Врешті-решт ви несете відповідальність за вибір джерела та цільової версії для порівняння.
jessehouwing

2
За допомогою версії набору змін, яку ви востаннє завантажили у вибрану робочу область із тим, що зараз знаходиться на диску.
jessehouwing

2
Для подальшої ясності отримання версії робочої області може відрізнятися від останньої або тієї самої, що і остання. Це повністю залежить від того, що ви витягли зі свого сховища
Каллат,

1
Приклад: Ви в команді, а 3/5 отримуєте файл. Ви модифікуєте його, але не реєструєтеся. 5/5 ви порівнюєте з останньою версією і бачите, що виявляєте більше відмінностей, ніж очікувалося: Це тому, що хтось інший вніс більше змін до того самого файлу. Але якщо порівняти з версією Workspace, ви отримаєте лише різницю між вашими локальними змінами та тим, яким був вихідний файл, КОЛИ ВИ ПЕРЕВИРАЛИ його спочатку. Дуже корисно перевірити, ЩО ТІЛЬКИ ви змінили ...
Роджер

79
  • Порівняння з версією робочої області насправді порівнює відредагований файл з версією файлу на момент виїзду (порівнює виключно ваші зміни).

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

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


1
serhio, ти та @jessehouwing заявляєте про конфліктну поведінку для типу порівняння версії робочої області. Схоже, він заявляє, що буде використана остання версія файлу, якщо робоча область налаштована на використання останньої версії. Однак те, що ви кажете, передбачає, що вихідний файл не обов'язково має бути останньою версією, але версія файлу під час його оформлення?
samis

2
Це найкраще найпростіше пояснення. Робоча область не отримує останню версію з сервера автоматично. У ньому зберігається останній отриманий файл. Отже, скажімо, ви отримаєте останню версію, відредагуйте файл. Тим часом ваш співрозробник зареєструвався після того, як ви отримали останнє. Ваш робочий простір не знає про зміни, зареєстровані вашим співрозробником. На даний момент Порівняння з робочою сферою та Порівняння з останньою версією відрізнятимуться.
SKCS Kamal

5

Відповідь @ serhio 3/28/14 - відмінна розповідна відповідь. Однак я впевнений, що багатьом (включаючи мене самому) потрібно це підтвердити прикладом, і ось воно:

  1. Для всіх, "Остання версія" = Changeset # 1.
  2. Ви "Отримати останні".
  3. Для вас "Версія робочої області" = Набір змін №1.
  4. Ви вносите зміни.
  5. Розробник B "Отримати останні".
  6. Для розробника B "Версія робочої області" також = Changeset # 1.
  7. Розробник B вносить зміни.
  8. Розробник Б "Реєстрація".
  9. Для всіх, "Остання версія" = Changeset # 2.
  10. Для розробника B, "Версія робочої області" = Набір змін №2.
  11. Для вас "Версія робочої області" все ще = Набір змін №1.
  12. Ви "Отримати останні", "Об'єднати конфлікти" (за необхідності) і "Реєстрація".
  13. Для всіх, "Остання версія" = Зміни №3.
  14. Для вас "Версія робочої області" = Зміни №3.
  15. Для розробника B "Версія робочої області" все ще = Зміни №2.

0

Щоб повторити відповідь:

Локальний файл - це завжди той, над яким ви працюєте.

Файл сервера може бути:

  1. Остання версія, включаючи всі інші реєстрації. (Ви бачите свої зміни, як і зміни інших людей .)

  2. Версія такою, якою вона була, коли ви її перевірили (Ви бачите лише свої зміни, навіть якщо інші люди зареєструвалися з тих пір).

Якщо з моменту оплати ніхто інший не реєструє файли, то обидва вищезазначені результати дають абсолютно однаковий результат.

Отже, якщо ви хочете порівняти те, що ви зробили, з тим, що було на початку, виберіть Версія робочої області

Якщо ви хочете порівняти те, що ви зробили, з тим, що зробили інші люди, виберіть Остання версія

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.