【发布时间】:2015-05-28 12:53:32
【问题描述】:
我正在使用 Mercurial(使用 TortoiseHG)来管理我的 Android 项目,并且由于该应用程序获得了具有不同包名称的并行品牌版本,因此最近不得不对其进行分支。
我做了一些研究并成功地分离了所有东西,但现在几天后我开始发现很难维护两个分支。 com.myapp.firstbranch 中的任何更改都需要手动转换为 com.myapp.secondbranch。
更糟糕的是,我完全有理由怀疑会有更多的分支出现,这需要我在许多分支之间引入任何更改和错误修复。
Mercurial 和/或 Tortoisehg 是否为这种情况提供任何支持? 简单的合并不起作用,因为包名称不同(VCS 将所有内容视为单独的文件并放置两个版本的应用程序在一个文件夹中)。
理想的解决方案是一个工具,它允许我只同步选定文件的选定部分,而不考虑导入、包等,只需替换纯文本。
【问题讨论】:
-
如果你要分离你的应用程序并修改文件结构——我暗示这是因为你提到了包装重命名——从概念上讲,它们是两个不同的东西。您始终可以使用 Meld 或 WinMerge 之类的合并工具或任何其他您想要合并文件的工具,但我不知道有任何 VCS 可以处理您提到的内容。
-
我知道它们是分开的,而且情况变得更糟——一些资源和价值是不同的。这就是为什么简单的合并是不可能的,我需要一些文本级工具来同步它们。
-
这听起来像是feature flags 比拥有多个分支更好的选择。长寿命的树枝无论怎么剪都是一件很痛苦的事。
-
哦,这听起来很有希望,但是关于在 Android 上实现它的任何提示?我看不出它如何用于绕过多包问题:-(
-
我建议不同的方法(我正在使用它)。将整个项目移动到单独的库中,然后使用单独的类作为这些项目中任何不同的数据提供者。在每个项目中扩展该类并使用特定的项目值对其进行初始化。
标签: android mercurial tortoisehg branching-and-merging