我有一个大型SVN仓库(大约140GB),它包含许多项目,并且不遵循svn推荐的目录结构。从所有这些数据(它包括二进制文件,发布版本和依赖项),我真正关心的是一条特定的路径,与其他所有路径相比,它实际上具有非常小的历史。
到目前为止,我在SVN-to-Git迁移中读到的所有文档都要求我将整个SVN回购拉到Git,但这需要永远,超时,淘汰OOM和崩溃。有什么方法可以只为这个非常具体的文件夹提取历史记录吗?
或者有没有办法可以将此文件夹的SVN历史记录单独导出到新的SVN仓库并从那里开始git迁移?
答案 0 :(得分:1)
传递--no-minimize-url,E.G。,:
git svn clone <SVN_URL>/your/specific/folder --no-minimize-url --no-metadata folder
答案 1 :(得分: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
的内容。