2011-06-03 65 views
0

我正在寻找一些关于如何分支我的应用程序,以便有一个功能有限版本的想法。分叉我的应用程序的新版本

让我给出一个假设。可以说我的桌面应用程序与所有网络浏览器交互。我与Google Chrome的人建立了合作关系,他们希望发布仅适用于他们的浏览器的应用程序版本,并且会排除IE,Firefox等。

我该如何去做这件事?我可以在git中创建一个单独的分支,然后运行我的构建脚本两次,同时切换它们之间的分支。我也可以复制完整的代码目录,并从每个目录构建。

我预见到的一个问题是,我希望我的完整程序中的错误修正能够在限制版本中自动更新。可能还有其他问题,我也没有意识到。所以我在寻找指导。

感谢

回答

1

如果你在你的完整程序中修复了一些东西,那么你显然会运行你的构建脚本来检查回归错误吗?所以也许有针对性的构建脚本可能是一个选择。我会说,或考虑适应使用标志(在Asana的家伙是big fans)。

+0

+1标志。可以用分支来做到这一点,但在这种情况下标志更容易维护。 – 2011-06-03 22:18:51

+0

谢谢,我认为这将是最好的方法,那么我不必担心重复修复。我可以拥有一个codebranch并标记我想要的功能(或者标记要构建的功能) – mikew 2011-06-04 06:28:09

0

根据其种类的应用程序,你想离开它作为多平台成为可能。如果你创建了两个单独的源文件,你确实有两个独立的程序 - 最好有两个独立的源文件(其中一个可能是另一个)。

分支机构对于开发版本(“develop-1.1”)和master(“master”)之间的相切子项目(例如“feature-kitchensink”或distingush)有其位置。这个想法是,您希望每个分支中的源代码足够相似,以便稍后进行合并。

分支和回购在git中很便宜,不要害怕使用你需要的东西。

0

我预见到的一个问题是,我希望我的完整程序中的错误修正能够在限制版本中自动更新。可能还有其他问题,我也没有意识到。所以我在寻找指导。

假设它们与当前工作树不冲突,你可以选择分支之间的提交。如果您为一个分支尽可能精确地完成修复,那么您应该能够将它们选择到另一个分支 - 您可能需要根据当前代码自定义修正,但不管如何,这都会发生。

0

通常,如果功能分支不同于父分支,主要是通过删除某些代码段,则从父分支中提取将按照预期更新所有常用代码。如果删除的部分被更改,您很可能会发生冲突,但解决起来相当容易。

另一方面,在这种情况下,我会说添加一个配置,在构建期间禁用某些功能将是一个更简单的解决方案。 (你如何做到这一点取决于语言和构建你使用的工具。)你仍然可以有一个独立的分支这有限的版本,并在代码中加入

if(someConfigVariable){ 
    includeSomeCode() 
} 

,而不是删除你不代码”需要,很可能会使合并更容易。

相关问题