2

注意: 如果重要的话,我们正在使用git,(因此分支和合并轻而易举),这是一个 Android 应用程序(Java - 所以条件编译并不真正适用)。

与此处的这个问题类似,但是如果您的软件的单个版本的不同更名之间的 UI 差异不仅仅是 UI 差异,该怎么办?例如,如果不应该将整个功能或子系统编译到其中一个更名中(例如,它包含属于一家公司的知识产权并且不应该提供给其他公司的代码)怎么办?

在这种情况下,是否应该为每个更名创建一个单独的分支?如果是这样,主/主分支是否有任何用途,因为它只会成为代码存储而不编译成任何有用的应用程序(奇怪)?但是没有主/主分支意味着必须挑选(单独选择)提交以跨品牌合并,这似乎是一种不好的方法。

还是有另一种不涉及分支的方法来解决这个问题?

4

2 回答 2

3

根据您的问题中提供的信息,我建议不要使用分支。

除非合并,否则分支将转移。因此,在所有分支中提供错误修复将需要大量挑选或至少非常小心的提交/合并处理。

将客户特定的代码放入应用程序加载的库中怎么样?

临:

  • 只有客户特定的代码会被复制。
  • 通用代码不会无缘无故分叉。
  • 通用代码是针对通用接口编码的。
  • 客户特定的应用部件仅运送给相应的客户。

缺点:

  • 需要对通用接口进行仔细的设计和生命周期管理。
  • 用于查找和加载客户特定库的附加代码。(在 Java 或者 Android 的构建过程中都不太难)
于 2012-07-25T14:02:55.357 回答
2

对于真正的敏感信息/代码问题,分支机构不会削减它:
您需要:

  • 将敏感代码库隔离到自己的 git repo 中
  • 将其作为某些项目的子模块引用
  • 不要在不应该​​看到该代码的其他项目中引用

这个想法是为了确保不会将敏感信息从一个存储库错误地推送到另一个存储库。

于 2012-07-25T14:02:06.847 回答