Ветвление против полок в TFS - PullRequest
22 голосов
/ 14 января 2010

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

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

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

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

Ответы [ 8 ]

21 голосов
/ 14 января 2010

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

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

11 голосов
/ 14 января 2010

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

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

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

7 голосов
/ 12 мая 2010

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

5 голосов
/ 14 января 2010

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

Сценарии

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

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

5 голосов
/ 14 января 2010

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

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

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

2 голосов
/ 28 сентября 2012

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

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

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

1 голос
/ 14 января 2010

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

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

0 голосов
/ 20 декабря 2013

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

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

...