I'm currently cloning a svn repo that has standard layout. It currently contains the code corresponding one iOS app and one Android app. Tags indicates when we froze the code and released it.
I cloned the repo using (the SVN server runs locally on the machine) :
git svn clone --trunk=/trunk --tags=/tags --branches=/branches --authors-file=authors.txt http://localhost/svn/MY_PROJECT MY_PROJECT
Then in MY_PROJECT,
git remote add origin ssh://git@my_bitbuket_repo.com:7999/test/MY_PROJECT.git
git push -u origin master
And now, the problematic part. Now I wan't to push the tags.
mylogin@MY_MACHINE MINGW64 ~/workspace/svn2git/MY_PROJECT (master)
$ git branch -a
* master
remotes/origin/master
remotes/tags/android_v1.4.2
remotes/tags/android_v1.5
remotes/tags/iOS-1.4.1
remotes/tags/iOS-1.5
remotes/tags/iOS_Android_1.3
remotes/tags/ios_v1.6
remotes/trunk
So I run the script given on this useful page, and here is what I get :
mylogin@MY_MACHINE MINGW64 ~/workspace/svn2git/MY_PROJECT (master)
$ sh convert_remotes_to_tags.sh
fatal: Failed to resolve 'refs/remotes/android_v1.4.2' as a valid ref.
fatal: Failed to resolve 'refs/remotes/android_v1.5' as a valid ref.
fatal: Failed to resolve 'refs/remotes/iOS-1.4.1' as a valid ref.
fatal: Failed to resolve 'refs/remotes/iOS-1.5' as a valid ref.
fatal: Failed to resolve 'refs/remotes/iOS_Android_1.3' as a valid ref.
So I tested what is given on this particular answer :
mylogin@MY_MACHINE MINGW64 ~/workspace/svn2git/MY_PROJECT (master)
$ cd .git/svn/refs/remotes/tags/android_v1.4.2/
mylogin@MY_MACHINE MINGW64 ~/workspace/svn2git/MY_PROJECT/.git/svn/refs/remotes/tags/android_v1.4.2 (GIT_DIR!)
$ git config --bool core.bare true
and
mylogin@MY_MACHINE MINGW64 ~/workspace/svn2git/MY_PROJECT (master)
$ cd .git/svn/refs/remotes/tags/
mylogin@MY_MACHINE MINGW64 ~/workspace/svn2git/MY_PROJECT/.git/svn/refs/remotes/tags (BARE:master)
$ git config --bool core.bare true
But this won't work either (running the same convert-tags-script)...
I tested another script to migrate the tags, here it is :
for tag in `git branch -r --sort=committerdate | grep "tags/" | sed 's/.*tags\///'`; do
git fetch --tags # must fetch tags before pushing more
git tag -a -m "Convert Subversion tag" $tag refs/remotes/origin/tags/$tag
git push origin $tag
done
But this won't work as well, having such logs :
fatal: Failed to resolve 'refs/remotes/origin/tags/android_v1.4.1' as a valid ref.
error: src refspec android_v1.4.1 does not match any.
error: failed to push some refs to 'ssh://git@my_bitbuket_repo.com:7999/df/my_project.git'
fatal: Failed to resolve 'refs/remotes/origin/tags/iOS-1.4' as a valid ref.
error: src refspec iOS-1.4 does not match any.
error: failed to push some refs to 'ssh://git@my_bitbuket_repo.com:7999/df/my_project.git'
fatal: Failed to resolve 'refs/remotes/origin/tags/android_v1.4.2' as a valid ref.
error: src refspec android_v1.4.2 does not match any.
error: failed to push some refs to 'ssh://git@my_bitbuket_repo.com:7999/df/my_project.git'
fatal: Failed to resolve 'refs/remotes/origin/tags/iOS-1.4.1' as a valid ref.
error: src refspec iOS-1.4.1 does not match any.
error: failed to push some refs to 'ssh://git@my_bitbuket_repo.com:7999/df/my_project.git'
Do you have any clue about how to migrate those tags ?