1

我正在分叉一个项目的 SVN 存储库,需要集成到我的 Mercurial 存储库中。为了简单起见,我有一个本地 hgsubversion 存储库和一个本地 hg 存储库。然而,mercurial 和 hgsubversion 存储库都default用作它们的默认分支名称。我的目标是将原始代码和更新放在一个分支上,并将我的代码放在default分支上

但是我还没有能够做到这一点。

W:\programming\tcsite-svn-test>hg clone http://*HG_SITE*/hg .
no changes found
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved

W:\programming\tcsite-svn-test>hg branch blizzard
marked working directory as branch blizzard

W:\programming\tcsite-svn-test>hg commit

W:\programming\tcsite-svn-test>hg log
changeset:   0:be13a9580df0
branch:      blizzard
tag:         tip
user:        Leon Blakey <lord.quackstar@gmail.com>
date:        Fri Jan 14 23:44:25 2011 -0500
summary:     Created Blizzard Branch

W:\programming\tcsite-svn-test>hg pull http://*SVN_SITE*/svn/
pulling from http://*SVN_SITE*/svn/
....
pulled 23 revisions
(run 'hg update' to get a working copy)

W:\programming\tcsite-svn-test>hg branch
blizzard

W:\programming\tcsite-svn-test>hg branches
default                       23:93642a8890ab <------
blizzard                       0:be13a9580df0

default毫不奇怪,当我在分支中真正需要它们时,hgsubversion 会将拉取的提交放入blizzard分支中。从文档中,无法重命名提交来自的分支。

令人沮丧的是,我什至无法想出一种方法来在仅从 hgsubversion 存储库中提取的存储库中执行此操作,仅此而已。无论如何,所有提交都与那个分支相关联。

关于如何从 SVN 存储库中提取更改并将分支重命名为其他名称,有什么建议吗?

4

1 回答 1

5

您在这里有几个选择。

一方面,内置扩展 'convert' 对于单向转换明显更加灵活,并且可以使用该--branchmap选项轻松处理此问题。但是,hgsubversion 提供了很好的同步回 svn 的功能,如果您使用的是hg convert.

在这种情况下,是否可以只切换您的命名方案?用于default“从 svn 导入”的情况,并local为您的本地更改使用或类似的东西?然后,您可以使用不同的分支名称命名代码库上的独立项目。我过去使用过类似的机制。

编辑:刚刚在hgsubversion 文档中发现了这一点:

hgsubversion.branch

将转换后的变更集标记为属于此分支,或者,如果未指定,则标记为 default。请注意,标准布局克隆不支持此选项。

“标准布局克隆”几乎可以肯定意味着以正常的 svn 方式克隆整个项目,包括 /tags、/branches 和 /trunk。

如果我理解正确,你应该能够做类似的事情

hg --config hgsubversion.branch=blizzard clone <svn-repo/trunk>

Not sure if you have to add that --config line every time you update from svn, but a little experimentation should confirm it.

If that doesn't work for some reason, the hgsubversion.branchmap feature is also available,

于 2011-01-15T07:25:55.950 回答