将一个大型SVN仓库迁移到git

4
我有一个大型的 SVN 仓库(约 140GB),其中包含许多项目,并且不遵循 SVN 推荐的目录结构。在所有这些数据中(包括二进制文件、发布版本和依赖项),我真正关心的只是一个特定路径,与其他所有内容相比,它的历史记录非常小。
到目前为止,我所看到的所有关于从 SVN 迁移到 Git 的文档都要求我将整个 SVN 仓库拉到 Git 中,但这需要很长时间,会超时、内存溢出并崩溃。是否有任何方法可以仅拉取此特定文件夹的历史记录?
或者,是否有一种方法可以将此文件夹的 SVN 历史记录导出到一个新的 SVN 仓库中,并从那里开始进行 Git 迁移?
2个回答

3

使用--no-minimize-url参数,例如:

git svn clone <SVN_URL>/your/specific/folder --no-minimize-url --no-metadata folder

0
如果您可以访问Subversion存储库(而不仅仅是一个工作副本),我建议使用svn2git,因为速度会更快。
您的规则文件将类似于:
create repository specific-folder.git
end repository

# note: trailing slash is important
match /trunk/foo/bar/baz/specific-folder/
  repository specific-folder.git
  branch master
end match

# ignore everything else
match /
end match

那么你的命令将是

svn-all-fast-export --identity-map=my-users --rules=specific-folder.rules \
  --stats --add-metadata /full/path/to/subversion/repo

请注意,您的新 Git 存储库将包含“specific-folder”的内容

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接