You’ll need several steps.
-
supply proper trunk, branches and tags folder names and fetch svn repo:
git svn init -t tags -b branches -T trunk https://mysvn.com/svnrepo git svn fetch
-
Since tags in svn are real branches, create git tags from tag branches:
git for-each-ref --format="%(refname:short) %(objectname)" refs/remotes/tags | cut -d / -f 3- | while read ref do echo git tag -a $ref -m 'import tag from svn' done
-
Delete tag branches
git for-each-ref --format="%(refname:short)" refs/remotes/tags | cut -d / -f 2- | while read ref do echo git branch -rd $ref done
-
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.
git for-each-ref --format="%(refname:short)" refs/tags | while read ref do tag=`echo $ref | sed 's/_/./g'` # give tags a new name echo $ref -\> $tag git tag -a $tag `git rev-list -2 $ref | tail -1` -m "proper svn tag" done
-
All we have to do now is to remove old tags.