Skip to content

Instantly share code, notes, and snippets.

@erkobridee
Last active December 25, 2015 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save erkobridee/7001474 to your computer and use it in GitHub Desktop.
Save erkobridee/7001474 to your computer and use it in GitHub Desktop.
migração SVN para GIT
for branch in `git branch -r | grep "svn/" | sed 's/ svn\///'` ; do
if [[ ! $branch =~ tags\/ ]] ;
then
if [[ ! `git branch --list $branch` ]] ; then
echo "add branch : $branch" ;
git branch $branch refs/remotes/svn/$branch ;
else
echo "already exist branch : $branch" ;
fi
#else echo "with 'tags' : $branch" ;
fi
#echo $branch
done
for tag in `git branch -r | grep "svn/tags/" | sed 's/ svn\/tags\///'` ; do
if [[ ! `git show-ref --tags refs/tags/$tag` ]] ;
then
echo "add tag : $tag" ;
git tag -a -m "Converting SVN tags" $tag refs/remotes/svn/tags/$tag ;
else
echo "already exist tag : $tag" ;
fi
done
current_branch=`git rev-parse --abbrev-ref HEAD` ;
if [[ ! $current_branch == "master" ]]; then
echo "current branch : '$current_branch' > checkout to master" ;
`git checkout master` ;
else
echo "ok : current branch is master" ;
fi
# ---
status_msg=`git status`
echo $status_msg ;
if [[ ! $status_msg =~ 'nothing to commit' ]]; then
echo "Discard files changed on branch master" ;
`git checkout -f` ;
fi
# ---
svn_master="trunk" ;
if [[ `git branch --list $svn_master` ]]; then
echo "$svn_master branch found" ;
if [[ `git merge $svn_master` ]]; then
echo "merge finish" ;
fi
if [[ `git branch -d $svn_master` ]]; then
echo "branch deleted" ;
fi
else
echo "$svn_master branch not found" ;
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment