我目前正在使用 Mercurial 以及 Guestrepo 扩展来管理和版本化项目的不同组件。我已经有了一个相当稳定的工作流程来管理不同版本的组件。
但是,在对组件的细微变化进行版本控制时,我想不出一个有效的解决方案。例如,这是一个稍微不同的嵌入式设备驱动程序(例如不同的串行端口速度),或者一个用英语而不是德语编写的 GUI。
我不认为将它们堆叠在 Release/Stable 分支中是一个好的工作流程,因为不同配置(英语、西班牙语、中文……)的扩散可能会导致 Release 分支严重且无意义的膨胀。
另一方面,为每个分支创建一个单独的 Release 分支会导致我有很多很多分支,恕我直言,这不是最好的解决方案。
每当必须进行结构更改时,为每个配置创建单独的存储库将假设一项非常繁琐的任务,因为所有存储库都必须随着该更改进行更新。
对此有任何想法吗?
谢谢你。
正如@EldadAK 建议的那样,为每个配置创建一个存储库并从其他存储库导入核心功能似乎是个好主意。
但是,我仍然不知道如何安排“相同但略有不同”的组件,这些组件在一些细微的功能上有所不同,但它们的核心相同。
是代码架构问题吗?是否应该重构组件,以便主要核心和不同功能位于不同的组件中,这些组件使用每个配置的自定义构建相关联?