Subgit:模式不为空且没有格式 segment1/segment2/.../segmentN

Subgit: Pattern is not empty and doesn't have format segment1/segment2/.../segmentN

我正在尝试使用 subgit 将 Subversion 存储库转换为 Git。 SVN结构大致如下:

trunk
├── Projects
│   ├── Project1
│   │   └── src
│   ├── Project2
│   └── Project3
├── SomeOtherDir
└── YetAnotherDir
branches
├── Projects
│   ├── Project1
│   │   ├── Branch_1
│   │   │   └── src
│   │   └── Branch_2
│   ├── Project2
│   └── Project3
├── SomeOtherDir
└── YetAnotherDir
tags
... similar to branches structure

因为所有这些都是旧代码,我不想将它拆分成多个小存储库,所以我的想法是在 subgit 配置文件中设置映射,如下所示:

trunk = trunk:refs/heads/master
branches = branches/Projects/Project1/Branch_1:refs/heads/Project1_Branch_1

这适用于其他存储库,它似乎适用于此处的某些分支,但是对于其他分支,我收到以下错误:

SubGit version 3.3.12 ('Bobique') build #4419

IMPORT FAILED

error: Failed to load Subversion configuration at '/path/to/subgit/config'
error: Invalid layout option 'svn.branches': Pattern "/refs/heads/Project1_Branch_1" is not empty and doesn't have format segment1/segment2/.../segmentN.

我不太明白错误的含义或如何修复它。任何想法或建议将不胜感激。谢谢!

第一个对我来说不正确的是错误消息提到以“/”开头的模式:

Pattern "/refs/heads/Project1_Branch_1"

这样的映射是不正确的,会导致确切的“无效布局选项”错误,所以我想存储库中的真实映射可能确实是这样设置的:

branches = branches/Projects/Project1/Branch_1:/refs/heads/Project1_Branch_1

在这种情况下,应删除前导斜线以解决问题。

另一个可能的原因是分支名称,如果它包含一些意想不到的符号,如“;”、“:”或其他,也可能导致类似这样的错误。