我正在使用hg-subversion,我有两个不同的hg存储库,一个来自我们的svn trunk,一个来自trunk的一个分支。我想以某种方式链接他们。在历史的某个时刻,两个Hg存储库是否相同是否有某种方式加入它们?
换句话说,有没有办法在Hg中关联存储库?
我目前使用的技术是将第二个存储库导出到他们共享的修订版的工作副本之上,然后将该工作副本作为Hg中的分支提交,但是我以这种方式丢失了历史记录。 p>
任何建议都会很棒
答案 0 :(得分:1)
您可以尝试将两个repos导入一个,就好像不相关,然后合并它们。 (当你说他们共享一个共同的祖先时,你的意思是那些祖先有相同的修订版ID吗?如果是这样的话,这很有可能会有效。)
hg clone repoA
hg pull -f repoB # may not need -f
hg merge
答案 1 :(得分:1)
您是否可以重新克隆Subversion存储库,将Subversion存储库的根目录作为参数而不是trunk或其中一个分支?我使用hg clone svn+ssh://foo/bar/baz
一次,其中svn+ssh://foo/bar/baz/trunk
是主干,svn+ssh://foo/bar/baz/branches/quux
是分支,最后我在Mercurial中有两个命名分支,“默认”分支代表Subversion主干和“quux”分支代表着名的Subversion分支。
如果您现有的hg repos中有外向更改集,那么您可能会遇到一些绑定。如果只有少数外发更改集,则可能会启用mq
扩展并将更改集转换为修补程序。然后可以在新克隆上(在相应的命名分支中)重新应用这些补丁,并最终将其推送到Subversion。