Итак, при условии, что у меня есть ваша модель прямо здесь: вы разрабатываете серьезные изменения в проекте в ветке (вне магистрали), которая может стать довольно старой.
Вы продолжаете заниматься другими разработками в транке, который всегда содержит «живое» программное обеспечение, поэтому эти изменения являются незначительными обновлениями и исправлениями ошибок.
У вас возникают проблемы, когда вы сливаете монументальную ветку разработки обратно в магистраль.
Вы можете эффективно управлять только двумя одновременно действующими версиями продукта с этой моделью, чего может быть достаточно на данный момент, но, в любом случае, это может укусить вас и ухудшится, если вам когда-нибудь понадобится управлять 3-4 версиями. Могу ли я предложить изменить способ работы?
Иметь ветку Version для каждого выпуска. Это должно быть ответвление от ствола (при любой ревизии).
Единственный способ изменить ветку версии - это объединить ревизии из ствола.
Это означает, что вы можете работать в основном с транком, а не с большой веткой разработки. Вы также применяете свои исправления ошибок непосредственно к стволу - таким образом у вас нет никаких серьезных проблем интеграции, сохраняемых для следующего выпуска. Чтобы выпустить исправления ошибок в предыдущих версиях, просто объедините требуемые версии ствола в соответствующую ветку Version.
Таким образом, вы можете хранить все, что хотите выпустить, в ветке, но только фактически выпускать то, что вам нравится, потому что это все, что вы сливаете с веткой версий.
Вы все еще можете использовать ветки разработки, если вам нужно, но вы можете сохранять их целевые и небольшие, возможно, отдельные функции, а не крупные проекты.
Это позволит вам разумно управлять несколькими версиями и следить за тем, что есть в каждом выпуске, используя svn's merge-info.