将 SVN 主干中的每个目录转换为不同的 GIT 存储库

Posted

技术标签:

【中文标题】将 SVN 主干中的每个目录转换为不同的 GIT 存储库【英文标题】:Convert each directory within SVN trunk to different GIT repositories 【发布时间】:2021-12-18 17:01:59 【问题描述】:

我正在尝试将 SVN 存储库转换为 GIT 存储库。在我的 SVN /trunk 目录中,我有多个目录:

/trunk
  /apps
  /site
  /services
  /scripts
/branches
  ...
/tags
  ...

如果我运行命令git svn clone --authors-file=authors.txt https://mysvnrepo.com.br/svn/myapp/ c:/mygitrepo,它将只创建一个包含所有目录的 GIT 存储库。

基本上我想要为/trunk 中的每个目录创建一个GIT 存储库,这样我就有4 个不同的GIT 存储库:appssiteservicesscripts

我也想只创建 GIT main 分支,忽略其他 SVN 分支。

如何使用git svn 命令执行此操作?

【问题讨论】:

"…一个包含所有目录的 GIT 存储库。" 现在将存储库一分为四:***.com/a/17864475/7976758 【参考方案1】:

我建议先将 SVN 存储库转换为 一个 Git 存储库。

然后在该 Git 存储库上使用 git filter-repo,以便从其中的 4 个子文件夹中提取 4 个存储库。

git filter-repo --path apps
git filter-repo --path site
git filter-repo --path services
git filter-repo --path scripts

作为illustrated here。

【讨论】:

以上是关于将 SVN 主干中的每个目录转换为不同的 GIT 存储库的主要内容,如果未能解决你的问题,请参考以下文章

使用没有主干标签和分支的 SVN 存储库从 SVN 迁移到 Git

将特定的 SVN 分支迁移到 GIT(2018 年迁移的主干)

cvs2svn 和合并信息

符号歧义和回购布局

SVN 如何把主干上的修改合并到分支上来

如何在将一个巨大的存储库拆分为单独的存储库时将 SVN 转换为 GIT?