Как создать ветку в проекте, размещенном на TFS / Codeplex?

Возможно, это просто потому, что я не знаком с TFS (я работал в основном с SVN), но я не понимаю, как создать ветку в проекте, размещенном на Codeplex.

Я использую VS2012. В проводнике управления исходным кодом я выбираю Ветвление и слияние> Ветвь ... в контекстном меню, но тогда я не знаю, что ввести в поле Цель:

введите описание изображения здесь

Если я попробую $/wpfanimatedgif/branches/1.3, я получу следующую ошибку:

Целевой элемент $ / wpfanimatedgif / branch / 1.3 не может находиться в исходном элементе $ / wpfanimatedgif.

Если я попробую $/branches/1.3, я получаю такую ​​ошибку:

TFS10198: система управления версиями должна переходить в существующий командный проект. Branch - это не командный проект.

Я также пытался создать новый командный проект из Team Explorer, но у меня нет необходимых разрешений.

Итак, как я могу создать ветку? Или это невозможно сделать на проекте Codeplex?

Кстати, причина, по которой я хочу создать ветку, заключается в том, что я работаю над экспериментальной функцией и не хочу публиковать ее в «магистрали» (или как там она называется в TFS). Возможно, у TFS есть другой способ обработки этого сценария? Я знаю об изменениях на полках, но, если я правильно понимаю, код на полках не будет доступен на Codeplex, не так ли?


person Thomas Levesque    schedule 10.12.2012    source источник


Ответы (1)


Во-первых, это может помочь понять, что такое «командный проект» - это логическая запись в системе управления версиями на верхнем уровне дерева системы управления версиями, которая, как правило, предназначена для группы разработчиков и включает различные разрешения и настройки. установлен на этом уровне. В командном проекте у вас может быть несколько проектов разработки, таких как решения Visual Studio или проекты Java. В этом случае ваш командный проект $/WpfAnimatedGif.

Что касается ветвления и слияния, они происходят ниже уровня командного проекта, как правило, в качестве партнеров ваших trunk или main ветвей. Различные стратегии ветвления и слияния описаны в Руководстве по ветвлению и слиянию TFS, но это упрощенный пример решения Visual Studio под названием «WpfAnimatedGif» может иметь следующую стратегию ветвления:

$/WpfAnimatedGif/main/WpfAnimatedGif
$/WpfAnimatedGif/branches/1.3/WpfAnimatedGif
$/WpfAnimatedGif/branches/test_features/WpfAnimatedGif

Что касается "лучших практик", то они должны создать папку trunk или main под папкой $/WpfAnimatedGif и переместить ваши проекты VS под нее. Однако вы можете создать новую папку для каждой ветви и разветвлять каждый проект независимо.

Eg:

$/WpfAnimatedGif/WpfAnimatedGif разветвлен на $/WpfAnimatedGif/branches/1.3/WpfAnimatedGif

а также

$/WpfAnimatedGif/WpfAnimatedGif разветвлено на $/WpfAnimatedGif/branches/1.3/WpfAnimatedGif.Demo

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

person Edward Thomson    schedule 10.12.2012
comment
Спасибо за подробное объяснение, теперь я понимаю лучше. Моя ошибка заключалась в том, что я пытался разветвить сам командный проект, а не одну из его папок. - person Thomas Levesque; 10.12.2012
comment
Да, не совсем очевидно, что папки верхнего уровня особенные, особенно если вы используете другую систему контроля версий, в которой это не так. Надеюсь, это помогло. - person Edward Thomson; 10.12.2012