当包名不同时,如何在分支之间合并?

Jam*_*mes 5 svn git android

我想知道是否有一种简单的方法可以在同一个Android项目的分支之间进行合并,其中包名称(以及目录名称)不同.由于我将拥有许多分支机构,并且所有分支都需要保持最新,因此我正在寻找有效地进行这些合并的最佳方法.

我们的Android项目的目录树看起来像这样

\assets
\libs\...
\res\...
\src\com\mycompany\mainproject
AndroidManifest.xml
build.xml
myproject.iml
myproject.ipr
Run Code Online (Sandbox Code Playgroud)

当我们为客户端制作自定义版本时,我会更改包名称,例如client1app或client2app.如果要在Android Market中作为不同客户端的不同应用程序存在,则需要不同的程序包名称.所以我创建了包含相同文件名和目录结构的单独分支,但src文件夹名称除外,必须更改该名称以匹配包名称.因此client1app或client2app将具有以下目录结构:

\src\com\mycompany\client1app
\src\com\mycompany\client2app
Run Code Online (Sandbox Code Playgroud)

这些文件夹下的文件名仍与mainproject相同.只是目录名称不同.(除了package子句之外,文件内容大多相同.)

我们使用SVN进行源代码控制.所以,当我从mainproject合并到client1app时,我想我必须首先合并顶级文件和其他目录,然后为src\com\mycompany\mainproject手动执行合并到src\com\mycompany\client1app.这是五种不同的合并,(对于顶级和四个子目录).如果不是目录名称不同,这将是一个简单的单步合并,我知道如何做到这一点.

问题1:有没有任何配置我可以告诉SVN\src\com\mycompany\mainproject和\ src\com\mycompany\client1app在合并时包含相同的文件名?或者其他一些方法可以在两个分支之间轻松合并cherrypick?

问题2:Git会更适合这个吗?

kab*_*uko 2

具有通用代码的Android 库项目将在这方面为您提供最大帮助。那么你就根本不需要进行任何合并。