我试图找到一种方法在生产环境中使用自定义修补程序部署软件。基础软件是开源的,拥有自己的回购站(SVN),我们有一些补丁只能选择一种服务,而不是其他补丁(所以我们在一台服务器上安装了基本版+ patchA + patchB,基本版+ patchA + patchC在另一个)。使用自定义本地修补程序管理软件
一切都将作为包部署,这很简单。我正在考虑的问题是:我们如何存储修改?这些是我想到的一些方法:
- 我试过使用被子/补丁系列+从上游下载特定版本修建时。这很好,直到我们需要将修补程序移植到新版本。由于被子需要修改修补程序的树的副本,因此修复东西需要很长时间。而且,在不同的服务器上部署不同的版本意味着我们需要有不同的构建脚本。
- 我可以将存储库克隆到本地git/hg中,并通过本地修改创建一个分支。对于向前移植补丁非常好,我可以在我的分支上创建本地发布标签,但不幸的是,我失去了有关单独补丁的信息。当然,我可以在上游看到差异,但我失去了不同本地修改的明显分离。
- 我试过堆叠的git/hg-mq,但据我所见,它们不能轻松导出补丁系列。它们适用于存储正在进行的工作。我可以执行与BitBucket相同的技巧,并在“存储库内部”创建修补程序队列以导出它们,但随后每个修补程序队列将分别分配给一个分支(例如,在使用
patchA
的每个本地分支中都需要进行相同的修改) 。
您有任何其他的想法,文章,标准化的方式吗?其他专业人士&缺点我提到的方式?