Что вы должны делать со старыми ветками SVN? - PullRequest
18 голосов
/ 25 мая 2010

Недавно у нас был филиал SVN, который был объединен с магистралью, и потребовалась дополнительная работа над этой функцией / функциональной областью. Я предложил использовать ту же ветку, но мне сказали, что вы не должны повторно использовать ветку после ее интеграции в транк (была дана ссылка на документы SVN, я не могу найти ее сейчас). Это говорит о том, что ветвь довольно бесполезна, когда вы объединяетесь с магистралью, поэтому мой вопрос: когда ветка больше не нужна, ее нужно просто удалить или оставить?

Ответы [ 6 ]

17 голосов
/ 25 мая 2010

Когда я интегрирую ветку, я перемещаю ее с branches/ на branches/integrated/. Содержит branches/ в чистоте, что позволяет легко находить текущую работу, но также позволяет легко копать старые ветки, чтобы увидеть, какие изменения были внесены, без необходимости выполнять большую археологию с номером редакции.

5 голосов
/ 25 мая 2010

В SVN 1.5 введено свойство "mergeinfo", которое позволяет легко реинтегрировать ветви в ствол, поддерживая повторные обновления ветвей. Это позволяет вам создавать ветку, обновлять ветвь по ветке из ствола и, наконец, реинтегрировать ветку в ствол (svn merge --reintegrate). Это полезно, например, когда вы создаете ветку, чтобы исправить ошибку или развить функциональность.

Реализация mergeinfo не позволяет вам выполнить последующую реинтеграцию, поэтому вам не рекомендуется использовать эту ветку повторно.

Это проблематично для "веток релиза", когда вы хотите разработать исправления ошибок в ветке релиза и периодически выполнять реинтеграцию в транк.

Если вы хотите повторно использовать ветку, обычным способом является создание новой копии (ветки) с тем же именем:

  1. удалить ветку
  2. 1012 * совершить *
  3. воссоздать ветвь (ветвление по пути с тем же именем)
  4. совершить
  5. работа над новым филиалом

Когда вы «воссоздаете» ветвь, на шаге 3 восстанавливается mergeinfo, поэтому вы можете без проблем реинтегрировать в будущем.

Возвращаясь к вашему вопросу: «так что мой вопрос, когда ветка больше не нужна, ее нужно просто удалить или оставить?» Я бы сохранил ветку, чтобы она была видна в ревизии HEAD. То, что ветви исчезают, сбивает с толку («эй, мы создали ветку для выпуска 0.1 на прошлой неделе?» «Хм, я не помню ... проверь историю репо»)

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

Ссылки Mergeinfo.

http://blogs.open.collab.net/svn/2008/07/subversion-merg.html http://blogs.open.collab.net/svn/2009/11/where-did-that-mergeinfo-come-from.html

4 голосов
/ 01 июля 2013

Из Википедии : «После того, как ветка обрезана или каким-либо иным образом удалена из ее источника, ее чаще всего называют палкой»

Так что я думаю, что вам следуетсоздать директорию "sticks" на том же уровне, что и ветви

1 голос
/ 25 мая 2010

Через некоторое время после завершения проекта я удаляю старые ветки.

Вы можете повторно использовать имена веток, но почему? Имена дешевые. Не называйте свою ветку «работой», а более конкретно, например «data-translation-phase-1».

0 голосов
/ 25 мая 2010

Хорошей практикой при разработке больших проектов является присвоение имен вашим веткам, используя имена задач из инструмента отслеживания проекта: например, «DEV-1512», «FEAT-512» или тикеты с ошибками: «BUG-5142»,и т. д.

Когда задача будет выполнена, запущена и запущена на рабочем сервере, удалите ветвь.Вы всегда можете объединить обратно.

PS.Представьте себе runung svn ls на $ репо / ветках с 9999 ветками;)

0 голосов
/ 25 мая 2010

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

Повторное использование ветки после ее объединения в магистраль - это почти наверняка плохая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...