Migrate SVN to Git: Difference between revisions

From Alpine Linux
(Created page with 'This document describes how to migrate an SVN repository to git. Most repositories are already migrated so this is mostly for historical reference. == Init git repository == Cr...')
 
(Category:Git)
Line 36: Line 36:


[[Category:Development]]
[[Category:Development]]
[[Category:Git]]

Revision as of 11:04, 26 March 2012

This document describes how to migrate an SVN repository to git. Most repositories are already migrated so this is mostly for historical reference.


Init git repository

Create a temp work area.

mkdir proj-tmp

Init the git repository. If your svn repo does not have the standard trunk branches and tags dirs you shouldnt use the --stdlayout. You can also use -T trunk -b branches -t tags.

cd proj-tmp git svn init svn://svn.alpinelinux.org/proj --stdlayout

Create user mapping

Start with creating a users.txt file where the svn users are mapped to an email address for git.

echo "ncopa = Natanael Copa <ncopa@example.com>" > users.txt

Connect the user mapping

Connect the users.txt to the empty git repository so users are remapped.

git config svn.authorsfile ../users.txt

Fetch SVN repository

This might take some time.

git fetch

Upload the Git repository

Now we can create a bare repository and upload it to dev.alpinelinux.org/gitroot.

cd .. git clone --bare proj-tmp proj.git scp -r proj.git dev.alpinelinux.org:/~