如何在Mercurial中管理两个版本的Android应用程序
我正在使用Mercurial(与TortoiseHG一起)管理我的Android项目,最近不得不将其分支,因为该应用程序获得了一个具有不同软件包名称的并行品牌版本 我做了一些研究,并成功地将所有内容分离,但几天后,我开始发现很难维护这两个分支。如何在Mercurial中管理两个版本的Android应用程序,android,mercurial,tortoisehg,branching-and-merging,Android,Mercurial,Tortoisehg,Branching And Merging,我正在使用Mercurial(与TortoiseHG一起)管理我的Android项目,最近不得不将其分支,因为该应用程序获得了一个具有不同软件包名称的并行品牌版本 我做了一些研究,并成功地将所有内容分离,但几天后,我开始发现很难维护这两个分支。com.myapp.firstbranch中的任何更改都需要手动传输到com.myapp.secondbranch 更糟糕的是,我有充分的理由怀疑将有更多的分支跟进,这将需要我在许多分支之间引入任何更改和错误修复 Mercurial和/或Tortoiseh
com.myapp.firstbranch
中的任何更改都需要手动传输到com.myapp.secondbranch
更糟糕的是,我有充分的理由怀疑将有更多的分支跟进,这将需要我在许多分支之间引入任何更改和错误修复
Mercurial和/或Tortoisehg是否对这种情况提供支持?简单的合并不起作用,因为程序包名称不同(VCS将所有内容视为单独的文件,并将两个版本的应用程序放在一个文件夹中)
理想的解决方案将是一个工具,它允许我只同步选定文件的选定部分,而不考虑导入、包等,只需纯文本替换即可
内部:
合并工具示例)hg manifest
(只是因为我对包、结构和Android开发一无所知),但是,AFAICR,如果您在初始分支中有/firstbranch
,在第二个分支中被重命名为/secondbranch
,那么,Mercurial将尊重分支机构合并中的这一变化。另一个想法是尽可能从版本控制中消除父树,并将创建适当的包树的任务转移到构建工具中如果你要分离你的应用程序并修改文件结构——我的意思是因为你提到了打包重命名——从概念上讲,它们是两件不同的事情。您可以随时使用合并工具,如Meld或WinMerge或任何其他您希望合并文件的工具,但我不知道有哪个VCS可以处理您提到的内容。我知道它们是分开的,而且更糟的是,某些资源和值是不同的。这就是为什么简单合并是不可能的,我需要一些文本级别的工具来同步它们。这听起来像是一个比拥有多个分支更好的选择。不管你如何削减,长期存在的分支都是一个很难管理的问题。哦,这听起来很有希望,但是关于在Android上实现它有什么建议吗?我看不出如何使用它来绕过多包问题:-(我建议不同的方法(我正在使用它)。将整个项目移动到单独的库中,然后使用单独的类作为这些项目中任何不同内容的数据提供程序。在每个项目中扩展该类,并使用特定的项目值对其进行初始化。1.在对项目进行分支时,我必须将包从
com.company.firstbranch
重命名为com.company.secondbranch
。它的分支很好,但我不能使用标准的合并工具,它所做的只是创建目录com.company
,再加上两个目录,firstbranch
和secondbranch
。2.您的任务是否包括更改每个分支的包名。这很重要,因为所有导入、包关系等等这个听起来很有希望,你能详细说明在哪里可以找到这些吗?