У меня есть репозиторий Subversion со стандартной компоновкой, то есть ствол / и ветки / (и теги /). При работе над более значительными изменениями используется ветвь функций, которая регулярно синхронизируется с основной веткой, а затем повторно интегрируется обратно в магистраль (теперь используется версия 1.5). Довольно стандартный материал.
Что мне интересно, так это то, должна ли такая функциональная ветка после завершения и слияния сохраняться или удаляться. В книге по подрывной деятельности иногда кажется, что их обычно удаляют, но я также видел кучу проектов с открытым исходным кодом, в которых ветки сохраняются.
Я также несколько обеспокоен тем, как удаление ветки затруднит отслеживание существующих веток, особенно когда потенциально повторяющиеся имена входят в сценарий (скажем, мы выполняем поиск-рефакторинг дважды), их истории фиксации исчезают где-то в глубине репозитория. и т.п.
С другой стороны, ветки используются довольно часто, особенно с версией 1.5, и мне нравится мысль о том, что мне не нужно копаться в большом списке неактивных веток, чтобы найти те, над которыми я сейчас работаю.
Какие плюсы и минусы мне не хватает? Что делают люди?
Вы можете смело их удалить. Их удаление не удаляет их из репозитория, выделенное пространство никогда не освобождается, но при этом все дерево вашего проекта выглядит более чистым.
Когда мы закончили, я удалял функциональные ветки, так как мне нравится отсутствие беспорядка. Со стороны некоторых других разработчиков возникла небольшая путаница, но, поскольку мы фиксируем номера ревизий коммитов в нашей системе отслеживания ошибок, все прошло довольно гладко. Если кто-то приходит и говорит, что не может найти ветку, советуем использовать флаг -rrevision
в его журнале / diff / checkout / в любом другом месте, как правило, все, что нужно.
Моя команда удаляет их, чтобы не было беспорядка. В конце концов, это не похоже на уход; при желании их можно получить. Вы правы в том, что найти их снова может быть сложно: вам нужно знать номер ревизии, в которой существовала ветка, поэтому вы говорите своему клиенту, чтобы он посмотрел на эту ревизию, чтобы увидеть ваши файлы.
Мы используем FogBugz для управления нашим проектом, который отслеживает, когда что-то было зафиксировано в нашем репозитории SVN, по номеру ревизии. Мы можем использовать это, чтобы определить, к какой ревизии нам нужно вернуться, чтобы увидеть наши файлы: мы находим историю функций в FogBugz, смотрим, чтобы определить, в каких ревизиях существовала ветка, и используем эту информацию для перехода назад.
Если вы действительно беспокоитесь об их удалении, чтобы они не были забыты, просто создайте папку в ветвях с именем «неактивные» и svn move
- ваши старые неактивные ветки в этой папке. Это может быть для вас лучшим из обоих миров.
не могли бы вы по-прежнему бороться с повторяющимися именами веток, я полагаю, вы также можете просто переименовать с датой, когда она стала неактивной