面向开发团队的GIT/Mercurial与SVN交叉
问题是,我希望能够使用Mercurial或git作为开发的前端,但在Subversion中进行更改集和更新,通常是在集成分支中或只有Mercurial脚本或Hudson在注意到更改时才编写的东西。然后使用其他使用SVN的开发人员所做的更改更新我们的Mercurial存储库,在提供新的开发版本之前,我们将这些更改拉入并集成它们并测试更改,等等 有人知道以下场景对于合并和分支的开发团队是否可行吗?或者如果有更好的方法…除了用一种工具武装人们 以下策略由以下组件组成:面向开发团队的GIT/Mercurial与SVN交叉,svn,git,mercurial,hgsubversion,Svn,Git,Mercurial,Hgsubversion,问题是,我希望能够使用Mercurial或git作为开发的前端,但在Subversion中进行更改集和更新,通常是在集成分支中或只有Mercurial脚本或Hudson在注意到更改时才编写的东西。然后使用其他使用SVN的开发人员所做的更改更新我们的Mercurial存储库,在提供新的开发版本之前,我们将这些更改拉入并集成它们并测试更改,等等 有人知道以下场景对于合并和分支的开发团队是否可行吗?或者如果有更好的方法…除了用一种工具武装人们 以下策略由以下组件组成: SVN 含Mercurial的
- SVN
- 含Mercurial的SVN的1对1克隆
- Mercurial开发存储库
[[[[ trunk [[[[[[[[[[[[[[[[[[[[[[[[ SVN ]]]]]]]]]]]] branch/integration ]]]]]]]]]]]]]]]]]]
| ^
| |
| |
v |
SVN - Mercurial Clone |
| |
| |
| |
v |
Mercurial - Development ---------------------------- Branch - Integration
在关于使用DVCS的课程中,这实际上是我解释的主要用例之一,我认为其中一个展示了DVCS是多么令人敬畏 你有几种方法可以做到这一点 手动方式 您SVN/checkout代码,然后Hg/init和Hg/commit所有内容。然后你在Hg下工作,根据你的意愿在本地进行小而频繁的原子修改。当您想要提交回SVN时,首先要Hg/up提交到您在SVN/checkout之后刚刚进行的Hg修订。如果您SVN/up,将不会有SVN冲突,因为您刚刚从普通SVN修订版更新。您Hg/commit,Hg/merge然后SVN/commit。如果同时有人在SVN中提交了,则重复该操作:Hg/up到最后一个干净的SVN版本,SVN/up和Hg/commit+merge 跟踪上一次SVN clean修订版的方式取决于您。您可以使用每次更改的标记,将SVN修订保留在分支或单独的存储库中TIMTOWTDI 附加好处:这也是一种为使用Hg的人提供SVN提交者的方式,而不需要他们处于版本控制之外 自动方式
我从来没有这样使用过它,但可以重复地以两种方式进行SVN/Hg转换。我应该提到,在前端开发中,我已经在使用hgsubversion,这对我来说很好。但我希望能够利用基于团队的分布式开发。我个人喜欢强大的武装方法:)而且Mercurial的使用与SVN非常相似。耶,我在从SVN过渡到Mercurial的过程中使用了这个过程。我基本上有一个分支,负责所有剩余的SVN更新。一旦每个人都解决了问题,并且我们已经准备好在mercurial环境中处理我们测试的过渡,我将最后的SVN更新与mercurial更改合并,并承诺在我宣布的新开发将开始的地方默认。效果很好。