I am trying to convert a Subversion repository to Git using subgit. The SVN structure is roughly as follows:
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
As all of this is old code and I don't want to split it into multiple small repositories, my idea was to set the mapping in the subgit config file like this:
trunk = trunk:refs/heads/master
branches = branches/Projects/Project1/Branch_1:refs/heads/Project1_Branch_1
This worked for other repos and it seems to work on some branches here, however with other branches I get the following error:
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.
I don't really understand what the error means or how to fix it. Any ideas or suggestions would be much appreciated. Thanks!
the first this that looks incorrect as for me is that the error message mentions pattern that begins with "/":
such mapping is incorrect and would lead to that exact "Invalid layout option" error, so I suppose the real mapping in the repository may indeed set like this:
in this case, the leading slash should be removed to resolve the issue.
Another possible reason is the branch name, if it contains some unexpected symbols, like ";", ":", or other, that may also lead to errors like this one.