Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Mercurial中管理两个版本的Android应用程序_Android_Mercurial_Tortoisehg_Branching And Merging - Fatal编程技术网

如何在Mercurial中管理两个版本的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

我正在使用Mercurial(与TortoiseHG一起)管理我的Android项目,最近不得不将其分支,因为该应用程序获得了一个具有不同软件包名称的并行品牌版本

我做了一些研究,并成功地将所有内容分离,但几天后,我开始发现很难维护这两个分支。
com.myapp.firstbranch
中的任何更改都需要手动传输到
com.myapp.secondbranch

更糟糕的是,我有充分的理由怀疑将有更多的分支跟进,这将需要我在许多分支之间引入任何更改和错误修复

Mercurial和/或Tortoisehg是否对这种情况提供支持?简单的合并不起作用,因为程序包名称不同(VCS将所有内容视为单独的文件,并将两个版本的应用程序放在一个文件夹中)

理想的解决方案将是一个工具,它允许我只同步选定文件的选定部分,而不考虑导入、包等,只需纯文本替换即可

  • 我无法想象(请更深入地解释),不同的包名会如何干扰Mercurial分支。回购协议中有不同的树吗?或者重命名分支中的文件(无论如何,Mercurial track重命名并可以正确合并分支中重命名的文件)
  • 当我面临这样的任务(根据历史上常见的代码库维护不同客户的分支)时,我完成了MQ补丁集(针对客户特定更改的每个目标补丁)和在更改集中使用公共代码的单个分支
  • 您可以为您的回购创建并定义不同的合并工具,这将根据不同的(您的)策略合并不同的文件,而不仅仅是GIU合并中的交互式合并(请参见
    内部:
    合并工具示例)
  • 添加内容

  • 我会要求为分支(或工作目录的ls)显示(至少部分)
    hg manifest
    (只是因为我对包、结构和Android开发一无所知),但是,AFAICR,如果您在初始分支中有
    /firstbranch
    ,在第二个分支中被重命名为
    /secondbranch
    ,那么,Mercurial将尊重分支机构合并中的这一变化。另一个想法是尽可能从版本控制中消除父树,并将创建适当的包树的任务转移到构建工具中

  • 不,我有添加|更改|删除对象(客户的品牌)的“琐碎”任务,但是,从我的POV来看,“所有导入、包关系等”从技术上讲只是代码(以及可能的-树)中的更改,补丁可以容纳这些更改

  • 自定义合并工具必须是最简单的手工脚本,其中包含最少的逻辑。尝试阅读Wiki:(第2部分)和作为合并.hgtags的起点


  • 如果你要分离你的应用程序并修改文件结构——我的意思是因为你提到了打包重命名——从概念上讲,它们是两件不同的事情。您可以随时使用合并工具,如Meld或WinMerge或任何其他您希望合并文件的工具,但我不知道有哪个VCS可以处理您提到的内容。我知道它们是分开的,而且更糟的是,某些资源和值是不同的。这就是为什么简单合并是不可能的,我需要一些文本级别的工具来同步它们。这听起来像是一个比拥有多个分支更好的选择。不管你如何削减,长期存在的分支都是一个很难管理的问题。哦,这听起来很有希望,但是关于在Android上实现它有什么建议吗?我看不出如何使用它来绕过多包问题:-(我建议不同的方法(我正在使用它)。将整个项目移动到单独的库中,然后使用单独的类作为这些项目中任何不同内容的数据提供程序。在每个项目中扩展该类,并使用特定的项目值对其进行初始化。1.在对项目进行分支时,我必须将包从
    com.company.firstbranch
    重命名为
    com.company.secondbranch
    。它的分支很好,但我不能使用标准的合并工具,它所做的只是创建目录
    com.company
    ,再加上两个目录,
    firstbranch
    secondbranch
    。2.您的任务是否包括更改每个分支的包名。这很重要,因为所有导入、包关系等等这个听起来很有希望,你能详细说明在哪里可以找到这些吗?