git - 如何克隆本地 svn 存储库的子文件夹

git - how can I clone a subfolder of a local svn repository

我的问题可能与git - how can I clone local svn repository?有关,但我无法完全实现我想要的。

我们有一个旧的本地 SVN 存储库。它看起来像一个单一的仓库,但是这个仓库下有多个不同的项目,比如:

project1/
    project1_subproject1/
    project1_subproject2/
    project1_subproject3/
project2/
    project2_subproject1/
    project2_subproject2/
    project2_subproject3/
...

我正在尝试 git svn clone 只是其中一个子项目,而不是整个存储库,但我真的不知道该怎么做。

主存储库位于:/home/user/projects/subversion/

我尝试了 git svn clone file:///home/user/projects/subversion/project2/project2_subproject1 但显然失败了。

我也试过git svn clone --trunk=project2/project2_subproject1 file:///home/user/projects/subversion/,但还是失败了。

两次尝试的结果都是 W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found:

注意:我已经成功地使用 git svn clone file:///home/user/projects/subversion/ 将整个 Subversion 存储库克隆到一个 git 存储库中,但这不是我想要的。

有什么帮助吗?

克隆整个 svn 存储库,复制并清理

可能最简单的方法是:

  • 克隆完整的 SVN 存储库
  • 复制克隆的存储库N次,其中N是独立项目的数量
  • 清理每个单独的 git 存储库,这样只剩下一个项目

关于最后一步,请参阅Remove folder and its contents from git/GitHub's history