В SVN 1.5 введено свойство "mergeinfo", которое позволяет легко реинтегрировать ветви в ствол, поддерживая повторные обновления ветвей. Это позволяет вам создавать ветку, обновлять ветвь по ветке из ствола и, наконец, реинтегрировать ветку в ствол (svn merge --reintegrate). Это полезно, например, когда вы создаете ветку, чтобы исправить ошибку или развить функциональность.
Реализация mergeinfo не позволяет вам выполнить последующую реинтеграцию, поэтому вам не рекомендуется использовать эту ветку повторно.
Это проблематично для "веток релиза", когда вы хотите разработать исправления ошибок в ветке релиза и периодически выполнять реинтеграцию в транк.
Если вы хотите повторно использовать ветку, обычным способом является создание новой копии (ветки) с тем же именем:
- удалить ветку
- 1012 * совершить *
- воссоздать ветвь (ветвление по пути с тем же именем)
- совершить
- работа над новым филиалом
Когда вы «воссоздаете» ветвь, на шаге 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