Как мне выполнить слияние между ветвями, когда имя пакета отличается?

Мне интересно, есть ли простой способ слияния ветвей одного и того же проекта Android, где имена пакетов (и, следовательно, имена каталогов) разные. Поскольку у меня будет много веток, и все они необходимо обновлять, я ищу лучший способ эффективно выполнять эти слияния.

Дерево каталогов нашего проекта Android выглядит следующим образом

\assets
\libs\...
\res\...
\src\com\mycompany\mainproject
AndroidManifest.xml
build.xml
myproject.iml
myproject.ipr

Когда мы создаем индивидуальную версию для клиента, я бы изменил имя пакета, например client1app или client2app.Вам понадобятся разные имена пакетов, если они будут существовать в Android Market как разные приложения для разных клиентов. Поэтому я делаю отдельные ветки, которые содержат идентичные имена файлов и структуру каталогов, за исключением имени папки src, которое необходимо изменить, чтобы оно соответствовало имени пакета. Таким образом, client1app или client2app будут иметь следующую структуру каталогов:

\src\com\mycompany\client1app
\src\com\mycompany\client2app

Имена файлов в этих папках по-прежнему идентичны mainproject. Просто имя каталога другое. (Содержимое файла в основном идентично, за исключением пункта о пакете.)

Мы используем SVN для управления версиями. Поэтому, когда я сливаю Cherrypick из mainproject в client1app, я думаю, что мне придется сначала объединить файлы верхнего уровня и другие каталоги, а затем выполнить слияние вручную для src \ com \ mycompany \ mainproject с src \ com \ mycompany \ client1app. Это пять разных слияний (для верхнего уровня и четырех подкаталогов). Если бы не разные имена каталогов, это было бы простое одношаговое слияние, и я знаю, как это сделать.

Вопрос 1: Есть ли какая-нибудь конфигурация, чтобы сообщить SVN, что \ src \ com \ mycompany \ mainproject и \ src \ com \ mycompany \ client1app при слиянии содержат одинаковые имена файлов? Или какой-нибудь другой способ легко объединить две ветки?

Вопрос 2: Подходит ли для этого Git?

5
задан James 14 December 2011 в 19:07
поделиться