问题是我希望能够使用 Mercurial 或 git 作为开发的前端,但在 Subversion 中进行更改集和更新,通常在集成分支中或仅由脚本写入的内容中Mercurial,或者当 Hudson 注意到变化时。然后我们的 Mercurial 存储库会根据使用 SVN 的其他开发人员所做的更改进行更新,我们将更改拉入并集成它们并在提供新的开发版本之前测试更改等。
有谁知道合并和分支的开发团队是否可能出现以下情况?或者如果有更好的方法......除了强大的武装人员只使用一种工具?
以下策略由以下组件组成:
- SVN
- SVN 与 Mercurial 的 1 对 1 克隆
- Mercurial 开发存储库
在下面的配置中,更新通常会从 SVN/trunk 拉到一个克隆(hgsubversion)中。克隆将是只读的,并且会定期有一个用于更改的脚本。然后克隆将被克隆到一个可读写的开发存储库中(它是一个常规的 Mercurial 存储库)。当开发人员将更改推送到此开发人员存储库时,驻留在集成分支中的元素将被推送到 SVN/集成分支。此分支仅由自动化脚本提交。如果其他使用 svn 的开发人员只将更改推送到 SVN 的主干,他们可以被拉入克隆并合并到 Mercurial 的环境中。不利的一面是,您将失去更改来源的 SVN 级别的可见性。
[[[[ trunk [[[[[[[[[[[[[[[[[[[[[[[[ SVN ]]]]]]]]]]]] branch/integration ]]]]]]]]]]]]]]]]]]
| ^
| |
| |
v |
SVN - Mercurial Clone |
| |
| |
| |
v |
Mercurial - Development ---------------------------- Branch - Integration