Ситуация: мы вышли из бета-версии, а версия 1.0 была выпущена на несколько клиентских сайтов. Команда A уже занята работой над версией 1.1, которая будет иметь инкрементные исправления и юзабилити, а другая команда работает с версией 2.0 с крупномасштабными изменениями, где ядро продукта может быть полностью переработано. Теперь большинство изменений, сделанных для версии 1.1, в какой-то момент должны пробиться в 2.0, и некоторые исправления ошибок, сделанные в ветке 2.0, возможно, должны быть запланированы для более ранней версии. Проблема в том, что, поскольку 2.0 имеет фундаментальные различия, никакие изменения от 1.1 не могут быть объединены без ручного преобразования, и наоборот.
Мой вопрос: Каковы наилучшие методы контроля версий, чтобы минимизировать конфликты слияния и дублировать работу в подобной ситуации? Как я могу обеспечить, чтобы мои команды тратили как можно меньше времени на усилия по контролю версий, но при этом регулярно предоставляли клиентам исправления?