我一直在阅读关于版本控制主题的所有问题,但我认为我没有找到一个看起来像我自己的场景.
场景是:
我们有一个中型/大型Web应用程序,它(至少应该有)一个部署到所有客户端的核心.当我们向客户端演示应用程序时,几乎所有应用程序都要求更改布局,列表中的数据或数据输入表单中的字段等等......几乎所有这些更改都需要更改剩余的"应用程序的"层".
在我们目前的情况下,我们使用CVS(使用tortoiseCVS)并且我们不使用分支,我们使用标签来区分代码更改与应用程序(是的,我知道它非常糟糕).当我们想要发布给特定客户端,签入更改等时,这会带来很多问题....准备发布版本总是需要大约1-2天的工作,有时它仍然会中断.
有时,来自客户端的请求也会包含在核心中,以便分发给所有客户端.
所以我的问题是:分支机构是将更改隔离到应用程序的自定义客户端版本的最佳方法吗?每当新客户要求定制时我们应该分支吗?或者我们应该将它视为一个完全不同的项目,具有不同的存储库?
所有不同的版本都必须保留,因为我听说分支是"临时的"我怀疑分支是否是最好的解决方案.
感谢您的答复.
安东尼奥迪亚斯
小智 4
我不知道为什么你认为分支是暂时的——只要你希望它们存在,它们就会存在。
您的应用程序听起来似乎可以从重组中受益,以实现更多的模块化功能,但与此同时,您可以将主要功能开发为主干,每个客户版本都成为它自己的分支。
然后可以根据需要将对核心代码的修改合并到每个分支中。可以在该分支上单独进行特定于客户的更改,也可以稍后将其合并回主干。
为每个客户提供单独的存储库听起来完全是错误的做法,因为这会导致存储库之间公共代码的重复。