注意: 万一重要的话,我们正在使用 git(因此分支和 merge 变得轻而易举),这是一个 Android 应用程序(< strong>Java - 所以条件编译并不真正适用)。
类似这个问题here ,但是如果单个软件版本的不同品牌 reshape 之间不仅仅存在 UI 差异,该怎么办?例如,如果整个功能或子系统不应编译到其中一个品牌 reshape 中(例如,它包含属于一家公司知识产权且不应向其他公司提供的代码)怎么办?
在这种情况下,是否应该为每个品牌 reshape 创建一个单独的分支?如果是这样,主/主分支有什么用处,因为它只会成为代码存储而不会编译成任何有用的应用程序(奇怪)?但没有主/主分支意味着必须挑选(单独选择)提交以跨品牌 reshape 进行 merge ,这似乎是一个糟糕的方法。
或者是否有另一种不涉及分支的方法来解决这个问题?
最佳答案
根据您的问题中提供的信息,我建议不要使用分支。
除非 merge ,否则分支将转移。因此,在所有版本中都提供错误修复 分支将需要大量的挑选或至少非常仔细的提交/merge 处理。
将客户特定的代码放入应用程序加载的库中怎么样?
优点:
- 只有客户特定的代码才会被重复。
- 通用代码不会无缘无故地 fork 。
- 通用代码是针对通用接口(interface)编写的。
- 客户特定的应用部件仅运送给相应的客户。
缺点:
- 需要对通用接口(interface)进行仔细设计和生命周期管理。
- 用于查找和加载客户特定库的附加代码。 (在Java或Android的构建过程中并不太困难)
关于java - 应用程序品牌 reshape - 何时应采用分支策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650596/