What is the correct way to make the remote branches/tags that exist after a git-svn init/git-svn fetch into local Git branches/tags before pushing to my remote Git repo and abandoning SVN altogether.
I have:
- Run
git svn init
Updated the
svn-remote "svn"
section of my .git/config file to the following:url = file:///Users/Developers/git_transition/svn_repo fetch = cascade/trunk:refs/remotes/svn/trunk branches = cascade/branches/{5.0GA_CLEANUP,drag-n-drop-def-builder,help-text,hib-annotations,hibernate-annotations,image-editor,ldapconfig,liquibase,move-rename-prototype,progress-bar,progress-bar2,quartz-upgrade,recyclebin,rendering_metrics,shuttle_upgrade,spring3,web-services-no-nuller}:refs/remotes/svn/* branches = cascade/branches/{6.x,5.x,4.x,3.x,archive}/*:refs/remotes/svn/* tags = cascade/tags/{3.7.x,4.x,5.x,6.x,old-releases}/*:refs/remotes/svn/tags/*
Run
git svn fetch
Does git-svn clone
do something beyond init/fetch that turns these branches/tags into local ones?
I tried the advice on Pro Git but there was nothing in the .git/refs/remotes/svn/ directory except the empty 6.x, 5.x, 4.x, 3.x, tags, and archive directories. I did verify that the remote branches are there with git branch -r
.
Someone suggested that I needed to systematically checkout all of the remote branches as local ones: git checkout -b <local_branch_name> <svn_remote_branch_name>
but I haven't gotten a definitive answer anywhere.
I have been able to conver the tags by using this script:
git for-each-ref --format="%(refname)" refs/remotes/svn/tags/6.x |
grep -v @ | while read tag; do GIT_COMMITTER_DATE="$(git log -1
--pretty=format:"%ad" "$tag")" GIT_COMMITTER_EMAIL="$(git log -1
--pretty=format:"%ce" "$tag")" GIT_COMMITTER_NAME="$(git log -1
--pretty=format:"%cn" "$tag")" git tag -m "$(git log -1
--pretty=format:"%s%n%b" "$tag")" ${tag#refs/remotes/svn/tags/6.x/}
"$tag"; done
for each of the tags folders.