Question

Does subgit support multiple 'branches' directories?

For example, if one had an SVN repo that went like:

trunk/...
branches/<branch>/...
releases/<release>/...
tags/<tag>/...

but "releases" was really just release branches.

We would want both "branches/" and "releases/" in SVN to become branches in Git.

And if a new branch was created in Git, then in SVN we would want a new directory in "branches/" (i.e. "releases/" is deprecated).

So what we want is multiple branch mappings, but with with one of them being the "primary" one.

Was it helpful?

Solution

Yes, since version 2.0 you can specify 'branches' option in SubGit config several times. There's a restriction: left and right parts of the patterns should not intersect or be the same (otherwise the rules become ambiguous):

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
branches = releases/*:refs/heads/releases/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*

You can't map releases/* and branches/* to refs/heads/* simultaneously, because this makes rules ambiguous (in this case SubGit doesn't know, whether to map refs/heads/branch to branches/branch or to releases/branch).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top