- 我喜欢在'main‘或’主干‘上工作,而不是(提前)发布分支,但是当需要为一些在野外的老版本提供修复时,我绝对会尽量减少我必须维护的不同版本的数量。当你处于测试版时,你还会支持你的软件的alpha版本吗?我认为alpha/beta/rc/版本是连续的,而不是平行的,它不需要分支,它只是表示你的‘主干’的准备/稳定。
- 由构建服务器创建的发行版,我将发行版与版本号和版本控制修订版相关联。这样,我可以在以后创建一个“发布”分支,如果需要热修复/补丁程序的话。我很少这样做,因为我试图修复最新版本(尝试将所有安装保持在最新版本)。
- 我在这里没有真正的经验,但我假设大多数代码实际上都是相同的,使用编译器指令,正如一些注释所建议的,听起来是一个更好的策略。您还可以使用依赖项注入配置选择特定于平台的实现。如果你的分支平台,你可能会冒险让你的分支偏离如此之远,以致于任何试图在它们之间合并成为一个主要的痛苦。我建议找到抽象来弥补平台之间的差异。
在我的经验中,它会导致后期的集成,它会阻止重构(您将遇到不可合并或非常复杂的合并)。我使用特征切换将不稳定/未完成的特性保留在生产之外。