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