Satya's blog - Migrating a subversion repository to git
I used these instructions to migrate some svn repositories to git:
Retrieve a list of all Subversion committers: svn log -q | \ awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' \ | sort -u > authors-transform.txt Edit that file as appropriate. Clone the Subversion repository using git-svn: Here, I didn't use the --stdlayout argument: git svn clone [SVN repo URL] --no-metadata -A authors-transform.txt ~/temp Convert svn:ignore properties to .gitignore: Not required if you didn't have any svn:ignore properties cd ~/temp git svn show-ignore > .gitignore git add .gitignore git commit -m 'Convert svn:ignore properties to .gitignore.' Push repository to a bare git repository: I didn't link HEAD to trunk, I linked it to git-svn: git init --bare ~/new-bare.git cd ~/new-bare.git git symbolic-ref HEAD refs/heads/git-svn cd ~/temp git remote add bare ~/new-bare.git git config remote.bare.push 'refs/remotes/*:refs/heads/*' git push bare Then delete ~/temp Rename git-svn to master (instead of renaming trunk): cd ~/new-bare.git git branch -m git-svn master And, since I had no branches, just rename/move new-bare.git to the final resting place, and then clone it out. |
|