我有几个不同的应用程序需要在它们之间共享代码以减少维护。我试图阅读很多关于 stackoverflow 和一般网络的内容,这是一个相当普遍的问题;我还没有找到我喜欢的答案。
我们的 TFS 分支结构是这样的。我们有三个分支开发,主要和生产。在 Development 分支上,所有活跃的开发都完成了,当我们完成新功能的开发时,我们将它与 Main 合并,然后再到生产中。生产分支始终是在服务器上运行的代码。如果我们检测到必须在下一次迭代之前修复的错误。更改主要完成,并在我们部署时与生产合并。需要共享代码的应用程序不共享公共分支层次结构或公共迭代计划。事实上,其中一个应用程序每年只进行一次 1 个月的迭代。(我知道这与传统的做法略有不同。
在我的研究中,我发现了一些不同的解决方案,但我都遇到了问题。
二进制文件共享:我发现的一种常见方法是将编译后的二进制文件分支到开发分支下的文件夹中。我的问题是,如果我们在哪里检测必须快速修复的共享代码中的错误,那么有问题的代码就会被编译。如果我们在哪里修复错误,我们将对共享代码库进行所有更改。
项目共享:我的主要问题是如何以可接受的方式完成。我最初的想法是当新的迭代开始时,将主分支的更改与共享代码合并以更新它。将主分支与开发分支合并,以使用错误修复导致的更改来更新开发分支。并将共享代码的新更新版本分支到开发分支中。但据我了解,这不受 TFS 支持,因为我会创建嵌套分支。
我的问题是:如何在解决方案之间共享一些常见项目,同时保持它们隔离,并能够修复主分支上的错误,而不必担心常见项目已更改并因此引入新错误。但仍然能够修复公共项目中的错误并将这些修复合并回共享的公共项目中。