Subversion: удаление старых веток функций вместо их сохранения - PullRequest
39 голосов
/ 02 октября 2008

У меня есть хранилище Subversion со стандартной компоновкой, то есть транк / и ветки / (и теги /). При работе над большими изменениями используется ветвь функций, которая регулярно синхронизируется с транком, а затем реинтегрируется обратно в транк (сейчас используется 1.5). Довольно стандартные вещи.

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

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

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

Какие плюсы и минусы мне не хватает? Что делают люди?

Ответы [ 4 ]

28 голосов
/ 02 октября 2008

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

22 голосов
/ 02 октября 2008

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

11 голосов
/ 02 октября 2008

Я удаляю ветви функций, как мы закончили, так как мне нравится отсутствие беспорядка. Со стороны некоторых других разработчиков возникла небольшая путаница, но, поскольку мы записываем количество исправлений коммитов в нашей системе отслеживания ошибок, все прошло довольно гладко. Если кто-то говорит, что не может найти ветку, советуйте использовать флаг -rrevision в своем журнале / diff / checkout /, как правило, все, что нужно.

8 голосов
/ 02 октября 2008

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

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

...