![](/img/trans.png)
[英]How to skip first N commits when converting svn repo to Git using reposurgeon?
[英]converting svn repo to git using reposurgeon
我正在尝试使用reposurgeon将svn repo转换为git。
这是我做的(有一个具有svn名称的reo.map文件 - > git名称映射):
svnadmin dump /home/subversion > repo.svn
reposurgeon "verbose 1" "repo.svn" "authors read" "write repo.fi"
reposurgeon运行了好几个小时(大量交换,因为它是一个12GB的转储文件),一切看起来都不错。 这是我得到的输出:
reposurgeon: verbose 1
reposurgeon: from repo.svn...copynodes+filemaps+copysets+commits+branches+parents+root+branchlinks+svn-mergeinfo+tagifying+tagify-empty+polishing+canonicalizing+resets+debubbling+renumbering+14163 revisions (1/s)...(9810.18 sec) done.
reposurgeon: r13: deleting parentless zero-op commit.
.
.
.
reposurgeon: r13726: deleting parentless zero-op commit.
2012-12-24T01:16:23Z * repo.svn
此时reposurgeon就坐了。 我不知道在这一点上在哪里寻找解决方案,因为它从来没有给我一个错误信息。 任何建议都是最受欢迎的。
它已成功导入存储库,但随后它将处理authors read
命令,但您没有指定文件。 此时它实际上正在等待文件出现在stdin上。 使用authors read <author-map
,其中author-map是包含地图的文件的名称。
出于类似的原因,您还需要将write命令更改为write >repo.fi
如果您考虑使用reposurgeon和git-svn的替代品,请查看SubGit 。
$ subgit configure /home/subversion
#edit /home/subversion/conf/subgit.conf to set 'core.authorsFile' option to path to "repo.map" file
$ subgit install /home/subversion
$ subgit uninstall --purge /home/subversion
转换后的存储库将位于/home/subversion/.git目录中。 作为奖励,你将把所有svn:ignore和svn:eol-style属性转换为他们的Git模拟。
通常,SVN存储库比相应的转储文件大约紧凑4倍,因此原始存储库的转换可能比基于转储的转换更快。
我选择使用git-svn,如果你考虑替代reposurgeon。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.