我正在寻找一些关于如何分支我的应用程序的想法,以便有一个功能受限的版本。
让我假设一下。让我们说我的桌面应用程序与所有Web浏览器交互。我与Google Chrome的玩家建立了合作关系,他们希望发布我的应用程序版本,该应用程序仅适用于他们的浏览器,并且会排除IE,Firefox等。
我该怎么做呢?我可以在git中创建一个单独的分支,然后运行我的构建脚本两次,同时在两者之间切换分支。我也可以只复制完整的代码目录,并从每个目录构建。
我想到的一个问题是,我希望我的完整程序中的错误修正也能在有限的版本中自动更新。可能还有其他问题我还没有意识到。所以我正在寻找指导。
由于
答案 0 :(得分:1)
如果您在完整程序中修复了某些内容,那么您显然会运行构建脚本来检查回归错误吗?因此,可能有一个目标构建脚本可供选择。我会说或者考虑调整旗帜的使用(Asana的人是big fans)。
答案 1 :(得分:0)
根据应用的类型,您希望将其保留为尽可能多平台。如果你创建了两个独立的源,你真的有两个独立的程序 - 最好有两个独立的存储库(其中一个可以分叉另一个)。
分支机构可用于切线子项目,例如“feature-kitchensink”或开发版本(“develop-1.1”)和master(“master”)之间的distingush。我们的想法是,您希望每个分支中的源足够相似,以便稍后合并。
分支和回购在git中便宜,不要害怕使用你需要的东西。
答案 2 :(得分:0)
我想到的一个问题是,我希望我的完整程序中的错误修正也能在有限的版本中自动更新。可能还有其他问题我还没有意识到。所以我正在寻找指导。
你可以在分支之间挑选提交,假设它们与当前工作树没有冲突。如果你为一个分支做出尽可能精确的修复提交,你应该能够将它们挑选到另一个分支上 - 你可能需要根据当前代码自定义修复,但是无论如何都会发生这种情况。 / p>
答案 3 :(得分:0)
通常,如果功能分支与父分支的不同主要是通过删除某些代码段,则从父分支中提取将按预期更新所有公共代码。如果删除的部分被更改,您很可能会遇到冲突,但很容易解决。
另一方面,在这种情况下,我会说添加一个在构建期间禁用某些功能的配置将是一个更简单的解决方案。 (如何执行此操作取决于您使用的语言和构建工具。)您可以在单独的分支上使用此受限版本,并添加
if(someConfigVariable){
includeSomeCode()
}
代码中的,而不是删除您不需要的代码,很可能会使合并更容易。