Migrate SVN to Git

From Alpine Linux
Revision as of 09:03, 6 August 2010 by Ncopa (talk | contribs) (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...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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:/~