Subgit: шаблон не пуст и не имеет формата segment1/segment2/.../segmentN

Я пытаюсь преобразовать репозиторий Subversion в Git, используя subgit. Структура 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.

Я не очень понимаю, что означает ошибка и как ее исправить. Любые идеи или предложения будут высоко оценены. Спасибо!


26
1

Ответ:

Решено

первое, что мне кажется неправильным, это то, что в сообщении об ошибке упоминается шаблон, начинающийся с «/»:

Pattern "/refs/heads/Project1_Branch_1"

такое сопоставление неверно и приведет к этой точной ошибке «Недопустимый вариант макета», поэтому я полагаю, что реальное сопоставление в репозитории действительно может быть установлено следующим образом:

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

в этом случае косая черта в начале должна быть удалена, чтобы решить проблему.

Другая возможная причина — имя ветки, если оно содержит какие-то неожиданные символы, такие как «;», «:» или другие, что также может привести к ошибкам, подобным этой.