我正在使用 hg-subversion,我有 2 个不同的 hg 存储库,一个来自我们的 svn 主干,一个来自主干的一个分支。我想以某种方式将它们联系起来。在历史的某个时刻,两个 Hg 存储库将是相同的,有什么方法可以加入它们吗?
换句话说,有没有办法从 Hg 中关联存储库?
我目前使用的技术是将第二个存储库导出到他们共享的修订版的工作副本之上,然后将该工作副本作为 Hg 中的一个分支提交,但我以这种方式丢失了历史记录。
任何建议都会很棒
我正在使用 hg-subversion,我有 2 个不同的 hg 存储库,一个来自我们的 svn 主干,一个来自主干的一个分支。我想以某种方式将它们联系起来。在历史的某个时刻,两个 Hg 存储库将是相同的,有什么方法可以加入它们吗?
换句话说,有没有办法从 Hg 中关联存储库?
我目前使用的技术是将第二个存储库导出到他们共享的修订版的工作副本之上,然后将该工作副本作为 Hg 中的一个分支提交,但我以这种方式丢失了历史记录。
任何建议都会很棒
您可以尝试将两个存储库导入到一个中,就好像它们不相关,然后合并它们。(当你说他们有一个共同的祖先时,你的意思是这些祖先有相同的修订 ID?如果是这样,这很有可能会很好地工作。)
hg clone repoA
hg pull -f repoB # may not need -f
hg merge
您能否重新克隆 Subversion 存储库,将 Subversion 存储库的根作为参数而不是主干或其中一个分支?我用过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 存储库中有传出变更集,那么您可能会遇到一些麻烦。如果只有几个传出变更集,则启用mq
扩展并将变更集转换为补丁可能会起作用。然后可以将这些补丁重新应用到新的克隆(在适当的命名分支中)并最终推送到 Subversion。