теги и ответвления Subversion - PullRequest
2 голосов
/ 16 сентября 2008

Кто-нибудь придумал лучшую технику для управления тегами и ветвями в Subversion, чем обычно рекомендуемые (параллельные каталоги, называемые «тегами» и «ветвями»)?

Ответы [ 3 ]

3 голосов
/ 16 сентября 2008

Использование пространства имен репозитория для передачи информации, такой как ветви / теги / и т. Д., По сути является моделью SVN; если вам нужна другая модель, вы, вероятно, действительно хотите что-то иное, чем SVN.

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

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

3 голосов
/ 16 сентября 2008

Мы используем стратегию «магистраль, тег, ветвь и поток».

«Сундук» - это место, где предполагается разместить самую последнюю версию того, что находится в производстве.

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

«Ветвь» - это когда происходит нечто совершенно иное, чем обычная разработка. Обычно ветки очень редки.

«Потоки» - это то, что мы чаще всего используем. Поток разработки - это фокус на основе задач, такой как поток для определенного исправления или разработки (например, завершение запросов на изменение). Потоки могут объединяться друг с другом, но разные потоки ранжируются на основе стратегии SVN. Например, у нас был один поток для выпуска cr, а другой - для выпуска релизов поддержки приложений. Так как поток CR должен был включать исправления поддержки приложения в дополнение к его собственным изменениям, он был оценен выше. Потоки с более высоким рейтингом имеют более низкие потоки (при необходимости), объединенные в них. Наконец, поток становится готовым к производству. Он помечается и затем «копируется» в транк, который затем используется (как правило, хотя иногда используются теги) в качестве основы для дальнейших потоков.

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

0 голосов
/ 16 сентября 2008

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

...