Ветвление против полок в TFS

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

Читая об этом, мы видим, что TFS имеет полки.

Как они сравниваются? Каковы большие гоча на каждом?

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

8 ответов

Решение

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

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

Стеллажи и разветвления - это не одно и то же.

Ветвление берет кодовую базу и "разделяет" ее, в основном делая копию. Все команды разработчиков могут работать в своих собственных ветвях (например), а затем все изменения могут быть объединены обратно в исходную ветвь. Ветви могут быть объединены только в родительскую ветвь в 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

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

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

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

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

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

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

Сценарии:

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

Необходима ветвь, когда вашей команде разработчиков нужно работать над двумя разными копиями проекта одновременно.

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

Чтобы отключить другую ветку, вам нужно следовать инструкциям из этого поста.

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

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

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

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

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

Другие вопросы по тегам