Заметки консультанта

Шамрай Александр Владимирович

Posts Tagged ‘branching’

Руководство по ветвлению — Visual Studio TFS Branching Guide 2010

Posted by Шамрай Александр на Апрель 27, 2010

Руководство по ветвлению для Team Foundation Server 2010 разработанное сообществом VSTS Rangers. Это руководство основано на практике использования для Team Foundation Server различных моделей ветвления и слияния. Страница проекта находится здесь. Ниже представлен перевод :

Visual Studio TFS Branching Guide 2010 v1 – Main – Это главная статья, которая коротко рассказывает о концепции ветвления и показывает основные модели ветвления

Visual Studio TFS Branching Guide 2010 v1 – Scenarios – Набор наиболее общих сценариев ветвления

Visual Studio TFS Branching Guide 2010 v1 – Q&A – Частые вопросы и ответы

Реклама

Posted in Microsoft, Team Foundation Server | Отмечено: , , , , , , | Leave a Comment »

Что такое «Изменить родительскую ветвь» и когда это следует использовать?

Posted by Шамрай Александр на Март 2, 2010

<< Назад в TFS Branching Guidance – Q&A

Вопрос

Что такое «Изменить родительскую ветвь» (Reparent Branch) и когда это следует использовать?

Ответ

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

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

Posted in Microsoft, Team Foundation Server FAQ, TFS Branching Guidance, Visual Studio | Отмечено: , , , , , , , | Leave a Comment »

Какая разница между папками и ветвями?

Posted by Шамрай Александр на Февраль 26, 2010

<< Назад в TFS Branching Guidance – Q&A

Вопрос

Какая разница между папками и ветвями?

Ответ

Начиная с TFS 2010, существует различие между ветвями и папками в системе управления версиями. С необходимыми разрешениями пользователь может конвертировать папки в ветви (и наоборот).

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

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

После обновления TFS 2008 до TFS 2010 Вы должны преобразовать папки-ветви в ветви. Примечание — не все папки в TFS 2008являются ветвями. Некоторые папки обычные и будут продолжать оставаться папками в TFS 2010.

Что касается безопасности, то здесь появились два новых разрешения: разрешение Управления ветвями необходимо для того, чтобы конвертировать папки в ветвь и наоборот. Кроме того разрешение Управление ветвью позволяет редактировать свойства ветви, создавать новые ветви с ветки и переопределять родительские ветви. Пользователи, имеющие разрешение Слияние для ветви, могут выполнять объединение изменений в эту ветвь.

Итак, когда вы хотите создать новый дочерний поток от родительской ветви необходимо иметь разрешение Управление ветвями для исходной ветви (родительской ветви). Когда вы хотите объединить изменения в ветвь, нужно разрешение Слияние для целевой ветви.

Дополнительные ресурсы

Posted in Microsoft, Team Foundation Server FAQ, TFS Branching Guidance, Visual Studio | Отмечено: , , , , , , , | Leave a Comment »

TFS Branching Guide 2.0

Posted by Шамрай Александр на Январь 12, 2010

TFS Branching Guide 2.0 довольно интересная сборка планов ветвления, которые основаны на практике применения Team Foundation Server. Будет полезно как пользователям TFS, так и интересно пользователям других систем версионного контроля. Страница проекта на CodePlex  – TFS Branching Guide 2.0

TFS Branching Guide – Main 2.0 – Это главная статья, которая коротко рассказывает о концепции ветвления и показывает 3 основные модели ветвления

TFS Branching Guide – Scenarios 2.0 – Набор наиболее общих сценариев ветвления

TFS Branching Guide – Q&A 2.0 – Частые вопросы и ответы

TFS Branching Guide – Drawings 2.0 – Изображения различных видов ветвлений в различных форматах файлов

TFS Branching Guide – Labs 2.0 – Примеры лабораторных работ с пошаговыми инструкциями их выполнения

Lab Files – Single Release Single Maintenance – Файлы для лабораторной работы «Single Release Single Maintenance»

Posted in Microsoft, Team Foundation Server, Visual Studio | Отмечено: , , , , , , , | Leave a Comment »

Выполняя слияние между двумя ветвями с выбранной опцией “Все изменения до определенной версии”, какой тип версии предпочтителен (“Последняя Версия” [по умолчанию], “Набор изменений”, «Дата», «Метка» или «Версия рабочей области»)?

Posted by Шамрай Александр на Декабрь 26, 2009

<< Назад в TFS Branching Guidance – Q&A

Вопрос

Выполняя слияние между двумя ветвями с выбранной опцией «Все изменения до определенной версии», какой тип версии предпочтителен («Последняя версия» [по умолчанию], «Набор изменений», «Дата», «Метка» или «Версия рабочей области»)?

Ответ

В зависимости от выбранной опции будет определен различный набор изменений, как описано ниже:

  • «Последняя версия» – все наборы изменений, которые не были объединены из исходной ветви от последней операции слияния, будут объединены с целевым потоком. Однако с момента последнего слияния в исходной ветви может вестись активная разработка, поэтому какие точно изменения будут объединены, может быть не четко определено.
  • «Набор изменений» – все наборы изменений из исходного ветви, которые были зарегистрированы до указанного набора изменений, будут объединены с целевой ветвью (определение набора изменений эквивалентно определению даты, где дата – дата регистрации набора изменений).
  • «Дата» – все наборы изменений исходной ветви, которые были зарегистрированы до указанной даты, будут объединены с целевым потоком.
  • «Метка» – все наборы изменений, которые помечены в исходной ветви, будут объединены с целевым потоком. Поскольку метки в TFS не включают удаления, то изменения удаления, никогда не будут объединены в целевой ветви.
  • «Версия рабочей области» – все изменения ветви до версий в указанном рабочем пространстве будут объединены с целевым потоком. Также как и для опции «Метка» изменения типа «удаление» не будут объединены.

Таким образом, т.к. присутствуют ограничения для опций «Метка» и «Версия рабочей области», не рекомендуется использовать слияние с этими опциями, если были изменения удаления.

Опция «Последняя версия» может использоваться, когда четко понятно, какие изменения будут содержаться в последней версии. Можно временно «заморозить» исходную ветвь на время проведения операции слияния с использованием блокировки до начала слияния.

Использование опций «Набор изменений» или «Дата» обеспечивает четкую контрольную точку для того, что будет объединено, и должно использоваться как правильное.

Дополнительные ресурсы

Posted in Microsoft, Team Foundation Server FAQ, TFS Branching Guidance, Visual Studio | Отмечено: , , , , , , , | 2 комментария »

Можно ли удалять ветви?

Posted by Шамрай Александр на Декабрь 26, 2009

<< Назад в TFS Branching Guidance – Q&A

Вопрос

Можно ли удалять ветви?

Ответ

Удаление ветви не отличается от удаления любой папки системы управления версиями. Различие в том, что необходимо знать, не повлияет ли удаление ветви на дальнейшие операции слияния. Слияние в TFS возможно или на непосредственный родительский поток разработки, или на непосредственные дочерние ветви (если не выполняется слияние без базовой версии); таким образом, если промежуточный поток будет удален, то определенные пути слияния могут быть нарушены. Рассмотрим следующий пример:

  • Есть ветвь от А к B
  • Есть ветвь от B к C

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

Дополнительные ресурсы

Posted in Microsoft, Team Foundation Server FAQ, TFS Branching Guidance, Visual Studio | Отмечено: , , , , , , , | Leave a Comment »

Что такое слияние без базовой версии и чем оно отличается от обычного слияния?

Posted by Шамрай Александр на Декабрь 26, 2009

<< Назад в TFS Branching Guidance – Q&A

Вопрос

Что такое слияние без базовой версии и чем оно отличается от обычного слияния?

Ответ

Слияние без базовой версии позволяет объединять две папки, которые не связаны ветками, создаваемыми через команду branch клиента командной строки tf или с помощью Обозревателя управления исходным кодом. Как только слияние без базы будет один раз выполнено, то в дальнейшем между этими папками можно будет выполнять обычное слияние (как будто эти папки связаны ветками). Хотя слияние без базовой версии может быть полезно для двух логически связанных каталогов, но не связанных ветками, в нем есть определенные недостатки по сравнению с обычной операцией ветвления/слияния:

  • Операция слияния без базовой версии возможна только с использованием клиента командной строки tf.
  • Связи, которые устанавливаются при выполнении слияния без базовой версии, не видны ни в клиенте командной строки tf, ни в Обозревателе управления исходным кодом (в том смысле, что команды tf branches и мастер слияния Обозревателя управления исходным кодом не работают с папками, которые связаны через слияние без базовой версии). Слияние без базовой версии можно определить только в истории слияний команды tf merge.
  • Даже когда связь установлена через слияние без базовой версии, все дельнейшие операции слияния должны выполняться с использованием клиента командной строки tf.

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

Дополнительные ресурсы

Posted in Microsoft, Team Foundation Server FAQ, TFS Branching Guidance, Visual Studio | Отмечено: , , , , , , , | Leave a Comment »

Когда создается новый командный проект, когда нужно использовать «Создать новую ветвь системы управления версиями”?

Posted by Шамрай Александр на Декабрь 21, 2009

<< Назад в TFS Branching Guidance – Q&A

Вопрос

Когда создается новый командный проект, когда нужно использовать «Создать новую ветвь системы управления версиями»?

Ответ

При создании нового проекта, в диалоговом окне «Указание параметров системы управления версиями» находятся следующие пункты: «Создать пустую папку системы управления версиями», «Создать новую ветвь системы управления версиями» или «Не создавать в этот момент папку системы управления версиями».

При выбранном пункте «Создать новую ветвь системы управления версиями» создается новая папка системы управления версиями для проекта, которая будет содержать все данные, содержащиеся в папке системы управления версиями другого существующего проекта. Т.е. выбирая этот пункт, говорится, что «проект X будет содержать все исходные коды проекта Y».

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

Однако если существующий проект содержит несколько релизов (даже если они внутренние), то лучше использовать » Создать пустую папку системы управления версиями » для нового проекта, и затем выполнить ветвление от определенного каталога в существующем проекте, а не от корневой папки. Это позволит получить только необходимые каталоги, и даст более гибкое решение при формировании необходимой внутренней структуры нового проекта. Ниже диаграммы иллюстрируют подобную проблему:

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

Ветвление каталога

Posted in Microsoft, Team Foundation Server FAQ, TFS Branching Guidance, Visual Studio | Отмечено: , , , , , , , | Leave a Comment »

Можно ли использовать ветвление между проектами?

Posted by Шамрай Александр на Декабрь 21, 2009

<< Назад в TFS Branching Guidance – Q&A

Вопрос

Можно ли использовать ветвление между проектами?

Ответ

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

Дополнительные Ресурсы

  • Смотрите Branching and Team Projects в руководстве Branching Guidance

Posted in Microsoft, Team Foundation Server FAQ, TFS Branching Guidance, Visual Studio | Отмечено: , , , , , , , | Leave a Comment »

Что такое метки и когда они должны использоваться?

Posted by Шамрай Александр на Декабрь 21, 2009

<< Назад в TFS Branching Guidance – Q&A

Вопрос

Что такое метки и когда они должны использоваться?

Ответ

В системе управления версиями Team Foundation метка – это маркер, который может быть выборочно прикреплен к ряду никак несвязанных версий файла и папки на сервере управления версиями, чтобы облегчить их общий поиск в рабочем пространстве, как для разработки, так и процесса сборки. Типичный сценарий использования, метки могут представлять снимок исходного кода, который был успешно собран в определенный день (Team Build делает это автоматически для каждой сборки), или сохранение версии некоторых изменений, сделанных как базовый код.

В зависимости от разрешений, предоставленных определенным пользователям, метки могут быть изменены – файлы могут быть изменены, добавлены, удалены из метки. Метки довольно мощный инструмент и должны использоваться с осторожностью, при этом стоит помнить следующее:

  • Team Foundation Server не сохраняет историю изменений метки.
  • Учитывая определенные разрешения, метки могут быть удалены или изменены, при этом нет способов отследить эти изменения.
  • При создании метки необходимо помнить, что наименование метки должно быть уникальным по всей ее области видимости.
  • Удаленные элементы не будут доступны в метке.

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

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

Posted in Microsoft, Team Foundation Server FAQ, TFS Branching Guidance, Visual Studio | Отмечено: , , , , , , , | Leave a Comment »

 
%d такие блоггеры, как: