繁体   English   中英

使用reposurgeon将svn repo转换为git

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM