Мне интересно, существует ли простой способ объединения ветвей одного и того же проекта 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
Имена файлов в этих папках по-прежнему идентичны основному проекту. Просто имя каталога другое. (Содержимое файла в основном идентично, за исключением предложения пакета.)
Мы используем SVN для контроля версий. Поэтому, когда я выполняю вишневое слияние из mainproject в client1app, я думаю, что сначала мне придется слить файлы верхнего уровня и другие каталоги, а затем вручную выполнить слияние для src \ com \ mycompany \ mainproject с src \ com \ mycompany \ client1app. Это пять разных слияний (для верхнего уровня и четырех подкаталогов). Если бы не имена каталогов отличались, это было бы простым одношаговым объединением, и я знаю, как это сделать.
Вопрос 1: Могу ли я сообщить SVN, что \ src \ com \ mycompany \ mainproject и \ src \ com \ mycompany \ client1app при объединении содержат одинаковые имена файлов? Или каким-то другим способом слияния вишенков легко слиться между двумя ветвями?
Вопрос 2: Git лучше подходит для этого?