使用提交访问在Mercurial中镜像Subversion存储库

时间:2010-06-03 22:19:15

标签: svn mercurial

我的团队希望在我们存储在Subversion存储库中的现有代码库上开始使用Mercurial的试运行。我们希望让一些开发人员使用subversion存储库的Mercurial镜像,并让团队的其余成员继续使用现有的Subversion存储库。

我遇到像SubversionToMercurialSync这样的文章,允许对Mercurial镜像进行只读访问。

我们希望能够使用现有的代码库测试Mercurial的所有功能,以便团队能够继续开发。像svn2hg这样的工具将允许我们测试Mercurial的本地分支功能,但我们也希望能够测试来自其他远程存储库的推送,拉取,合并等。为此,我们需要一个具有提交访问权限的远程Mercurial镜像。

有人试过这个工作流程吗?如果是这样,我应该使用哪些工具/技术来实现这一目标?

1 个答案:

答案 0 :(得分:3)

如果您只是尝试一下,只需并行使用它们。根据需要手动同步两者。 您可以通过本地(非克隆)hg repo在小规模上熟悉它,但在您作为一个团队工作之前,您不会对hg感到满意。我不建议长时间保持这种分裂的个性,因为历史将会散布着非有用的提交消息,例如“hg,svn之间的大同步”。我还建议只在双沙盒中的默认分支上进行开发。如果您想在命名分支上试验某些内容,请在仅限hg的沙箱中尝试。

converting your svn repo to hg开始

使用包含.hg和.svn子目录的开发“沙箱”。您可以从克隆的仓库中复制.hg目录。

理想情况下,参与试用的开发人员应该同时承诺两个vcs,但是......

从svn手动同步到hg:

svn update
hg addremove
hg commit
hg push

手动从hg同步到svn:

hg pull -u
(svn add newfiles)
(svn remove gonefiles)
svn commit

选择一个可能需要一段时间才能开发的新功能(几天到几周),然后从你的svn基础转换的hg repo中开始执行。这将让您体验svn缺乏的强大分支和标记。

我认为我的团队做得很好。我们设置了转换日期(一个月)。在那段时间里,一些团队用hg修改并获得了一定程度的熟练程度。这有助于同伴帮助。 我们做了午餐,并在第0天学习转换为mercurial。我们都带着我们的笔记本电脑,玩同样的回购,更改文件,提交,推送,拉动。人们愿意进行实验,因为这是无数据。使用单个文本文件启动repo,告诉人们如何克隆/推/拉回购然后告诉他们改变一些东西(不要指定什么)。让每个人按照自己的节奏工作。他们将创建新文件,更改文件,创建冲突,解决它们....

这种方法要求您至少有一个人非常熟悉分支,并且要合并以充当促进者。