Вы должны помнить, почему вы определяете ветвь :
Чтобы изолировать усилия по разработке.
Таким образом, чтобы лучше управлять своей сложной конфигурационной спецификацией, вы должны точно знать, какую роль играют ветка 'main', ветка v2 и ветка проекта A.
V2 и проект А, например, должны быть там по двум различным причинам.
Если проект А предназначен для разработки текущей версии проекта, должно произойти слияние с веткой V2, чтобы можно было перенастроить некоторые из текущих разработок на ветку V2.
Исходя из этого, вы не должны видеть «оба» в одном и том же виде: они представляют собой два разных набора файлов, V2 может включать большие рефакторинги с очень разным API.
Однако, если вы настаиваете на такой конфигурации, вы можете использовать возможность перемещения метки «MERGE_FROM_PA»: каждый раз, когда вы объединяете некоторые файлы из ветки Project A в V2, вы снова устанавливаете метку «MERGE_FROM_PA» для каждой объединенной file / directory, перемещая эту метку из предыдущих версий V2 в их последние.
Спецификация конфигурации может быть:
element * MERGE_FROM_PA
element * .../ProjectA/LATEST
element * .../V2/LATEST
element * /main/LATEST
Но опять же, это не имело бы особого смысла.
Вам необходимо определить различные усилия по разработке, которые вы хотите смоделировать, а затем определить согласованный рабочий процесс , позволяющий вашей конфигурации сконцентрироваться только на одной этих сред.