I have got a central SVN repository I must commit to, but I've got a passion for git (like any other developer I know). The case is well known.
Then I read about git-svn and gave it a try. Since I don't need the full history, just from two months or so, I did like this:
git svn clone -r 34000 -s https://svn.ourdomain.com/svn/repos/Project/SubProject
SubProject had, as usual, the subdirectories trunk
, tags
and branches
. Great.
Then, in order to get the last revision, I did
git svn rebase
Some downloads later, great. Last revision, logs, etc. Ok, now I'll switch to my feature branch.
$ git branch
* master
$ git branch -r
trunk
$ git branch -a
* master
remotes/trunk
The questions are: Where are my branches? Have I done something wrong? How should I do in order to get my branches in the new git repo?
git-svn, wherever I have read about it, dealt wisely with branches and tags, but the behaviour is not what I expected. Thanks!
EDIT: I have just found out that git svn fetch
will do it. But it will get all revisions, which is something I wouldn't like.
Best Answer
You'll need several steps.
supply proper trunk, branches and tags folder names and fetch svn repo:
Since tags in svn are real branches, create git tags from tag branches:
Delete tag branches
Since tags marked in the previous step point to a commit "create tag", we need to derive "real" tags, i.e. parents of "create tag" commits.
All we have to do now is to remove old tags.