2010-01-13 3 views
21

Я всегда использовал SVN в своем прошлом, и теперь, когда мы прошли прошлую начальную стадию проекта, нам нужно выяснить наш ветвящийся процесс для будущих улучшений.Ветвление против полки в TFS

Считая это, мы видим, что TFS имеет стеллаж.

Как они сравнивают? Какая у вас большая магия?

В общем, что является предпочтительным и почему?

ответ

19

отложенных являются для каждого пользователя и по-разному хранятся в системе управления версиями - это не представляется возможным объединить отложенных, нет никакой истории и т.д. Единственное действие, возможно, является unshelving; при этом вы даже не можете объединять файлы. Таким образом, мы используем его только как временное хранилище для вещей, которые еще не закончены, и поэтому их нельзя проверить в ветке.

Итак, вы должны использовать ветки ;-) возможно, главный филиал и разные ветви развития для функций & bugfixing.

+2

Это часть информации, которую я искал. В частности, слияние полок. –

+0

Я уточню, что, хотя вы не можете сливаться, одновременно выполняя действие без стеллажа, вы можете объединить набор полки в точке проверки. Слияние всегда происходит в момент регистрации, поэтому вам будет предоставлена ​​возможность объединить изменения полки в этот момент. –

+0

@Matt You _can_ merge файлы на unhelving, но вы должны использовать TFS Power Tools. См. 'Tfpt unshelve'. –

5

Стеллажи и ветвление - это две совершенно разные вещи. Стеллаж позволяет хранить все ваши изменения в TFS, но на самом деле они не проверяются ни на одну конкретную ветку. Ваши изменения просто сохраняются под заданным именем. Это действительно очень полезно, потому что это отличный способ сделать обзоры кода. Возможно, я внес изменения в 10 разных файлов. Я создам полки этих изменений с указанием имени. Затем я попрошу кого-нибудь еще просмотреть мой полки. Затем я могу отказаться от этих изменений или удалить полки.

Ветвление - это процесс, при котором вы делаете полную копию ствола кода и указываете ему имя и местоположение. Затем вы можете проверить/отключить/объединить с ветвью кода. Это замечательно при работе над следующей версией приложения. Вы можете создать ветку для работы над новыми функциями.

Вот хорошее объяснение отложенных: http://msdn.microsoft.com/en-us/library/ms181403(VS.80).aspx

11

Стекла и ветвление - это не одно и то же понятие.

Ветвление берет базу кода и «раскалывает» ее, в основном создавая ее копию. Команды разработчиков могут работать на своих филиалах (например), а затем все изменения затем могут быть объединены обратно в исходную ветвь. Филиалы могут быть объединены только в родительскую ветвь в TFS.

Стеллаж позволяет разработчикам проверять код в исходной системе управления на «полку». Код не проверяется в основной ветке. Если менеджер по сборке или другой разработчик «получает последние», он не получит по умолчанию код по умолчанию. Полка безопасно хранится в контроле источника, как и все остальные коды, она просто не находится в ветке. Другие разработчики могут потянуть полки вниз, чтобы увидеть эффекты. В какой-то момент изменения будут проверяться в основной ветке и будут частью набора изменений.

Я предлагаю эту книгу: http://www.amazon.com/Team-Foundation-Server-2008-Action/dp/1933988592/ref=sr_1_1?ie=UTF8&s=books&qid=1263417920&sr=8-1

Она имеет очень простое, но эффективное объяснение стеллаж, слияния и различные ветвящиеся модели.

5

Shelvesets - это набор ожидающих изменений, комментариев и связанных с ними рабочих элементов.

Сценарии:

  • Резервных
  • Временно перенести изменения на работу на другой вопрос
  • дистанционного анализ кода
  • Buddy сборки или координату изменений

филиал необходим при ваша команда разработчиков должна одновременно работать над двумя отдельными копиями проекта.

1

Ветка, является копией основной ветви. Вы можете использовать ветку, чтобы сказать, попробуйте идею для чего-то. Это здорово, потому что, если что-то пойдет не так, вы можете отказаться от оригинала, так же как удаление копии файла. Если все будет хорошо, вы объедините ветку обратно в оригинал, скажем, «Главная».

A Shelve аналогичен временной папке. Вы можете использовать их для просмотра кода или, как мы это делаем, или если вам нужно что-то исправить, так это в TFS и резервное копирование. Вы откладываете любой код, над которым работаете (даете ему ярлык), а затем возвращаетесь к основному. Когда вы закончите, вы затем замените Main на свою Shelve, и жизнь продолжается без остановки.

6

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

+3

Аминь. Я считаю, что стеллажи опасны, потому что TFS не дает ничего, что вы могли бы сделать с тех пор, как вы отложили.Как только вы перестанете, эта работа ушла. –

2

Unshelving на другой ветке не является функцией по умолчанию TFS.

Чтобы unshelve на другой ветке вы должны будете следовать инструкциям из этой blogpost

Это подразумевает установки TFS2010 Power Tools из VS галереи.

0

Если по какой-либо причине невозможно внести изменения, можно отменить изменения. Затем у вас есть возможность сохранить локальные изменения (т. Е. Сохранить полные копии локально) или вернуться к текущей версии локально (и изменения существуют только в отложенной копии). Если вы сохраняете изменения локально, то стеллажи - это хороший способ сохранить версию своего кода в репозитории и защитить от локального сбоя диска.

Кроме того, стеллажи полезны, если вы сделали много изменений, которые еще не были проверены, и вы хотите сохранить эту версию, прежде чем приступать к «рискованному и сложному» эксперименту по кодированию. Если эксперимент получается плохо, и он хочет его отбросить, можно просто отказаться от отложенной копии. И если эксперимент был успешным, можно просто удалить полку или позволить ему томиться в неясности.