Подтвердить что ты не робот

Subversion: удаление старых ветвей функций и их сохранение

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

Я задаюсь вопросом, следует ли хранить или удалять такую ​​ветвь функции после ее завершения и объединения. Книга subversion иногда кажется, что она обычно удаляет их, но я также видел кучу проектов с открытым исходным кодом, которые сохраняют ветки.

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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