git svn clone 非标准存储库有问题

Having issues with git svn clone a non-standard repository

背景

我正在使用一个巨大的 SVN 存储库(完整克隆约为 20Gb),它具有以下顶级结构:

stuff
stuff/branches
stuff/tags
stuff/trunk
stuff/archive
stuff/build
stuff/machines
stuff/releases

第一点:我不知道 [archive, machines, build & releases] 目录中包含什么东西,老实说 - 我真的不在乎 - 我只知道我不需要存储它们在本地做开发工作。

第二点:除了用于存储工件的愚蠢目录之外,从表面上看这似乎是标准的 SVN 布局。然而,当你深入挖掘时,它会很奇怪,因为 trunk 目录包含多个项目,例如:

stuff/trunk/mars
stuff/trunk/earth
stuff/trunk/venus
stuff/trunk/saturn
stuff/trunk/pluto
...

branches 文件夹已按照描述组织:

stuff/branches/<project>-<name of project branch>

其中每个分支都是从以下项目之一分支的:

stuff/trunk/<project>

我想达到什么目的?

我只想从 pluto 项目 (~20Mb) 克隆一些东西。例如,在 SVN 中执行此操作时,我会发出以下命令:

svn checkout https://svn.example.com/svn/stuff/trunk/pluto
...
Checked out revision 3505

我的问题是我无法使用 git-svn 复制它。我尝试了很多次 "git svn clone" 的不同选项,每次我最终都克隆了整个 repo (~20Gb) 或什么都没有。当然不应该这么难所以我一定是做错了什么。

如果我能够 git-svn 只克隆 pluto 项目,当我使用 git-svn 创建一个新分支时,我也希望它为我创建一个 SVN 分支,因为例如,我希望以下命令等效:

svn copy https://svn.example.com/svn/stuff/trunk/pluto \
    https://svn.example.com/svn/stuff/branches/pluto-1234 \
    -m "Making branch pluto-1234 from /stuff/trunk/pluto"

git svn branch -m \
    "Making branch pluto-1234 from /stuff/trunk/pluto" \
    pluto-1234

以便在以下位置创建一个新的 SVN 分支:

stuff/branches/pluto-1234
git svn clone --trunk stuff/trunk/pluto --branches stuff/branches --include-paths='stuff/branches/pluto-.*'

pluto-.* 是 select 所需分支的正则表达式。参见 https://git-scm.com/docs/git-svn#Documentation/git-svn.txt---include-pathsltregexgt