我的工作组发布了商业产品的嵌入式软件。我们一直在使用ClearCase很长一段时间,但我正在使用GitHub Enterprise调查一个更现代的工具,如Git。我正在努力解决我们流程中的一部分问题,了解它将如何从CC转换为Git。
我们的核心软件(“算法”)在我们发布的产品的不同变体中最常见。但是,每个产品可能具有不同的配置,以及与之一致的不同调整值集。
所以在ClearCase中,我们有一个名为“Algo”的文件夹,它存储了公共代码。我们在同一个存储库中有一个名为“Cal”的文件夹,其中包含特定于变体的内容,例如调整文件。
当我们发布时,为了制作,我们会从主线发布Algo文件。 Cal文件是从项目特定分支中释放的,因此您可能拥有WidgetA.2016和WidgetB.2016分支。
现在,在Git中,如果我理解正确的话,所有文件都会作为项目一起被跟踪。
那么Git中有哪些好的直接工作流程可以满足我们对常见Algo文件和Cal文件变体的需求?到目前为止,我提出的内容似乎很麻烦:为每个Widget保留一个分支,并且必须拉/合并常量才能与Master保持同步?
或每个Widget的一个分叉?
或者我将Algo放在一个回购中并在第二个回购中加入Cal?我们如何以这种方式管理标签和发布?