Git/Conversion/Mirror

Right now our git repos for core & WMF-deployed extensions are mirroring SVN. They need manual updating daily-ish though. This page is to tell people with formey access how to do it.

Overview:

The working directory is /svnroot/git-dumps

Scripts are in software/svn2git/scripts

Dumps in mediawiki/

Do not delete the log* files!

Step 0: SSH to formey

edit
ssh -A svn.wikimedia.org

Step 1: Dump core/extensions through HEAD

edit

To dump wmf extensions, do the following:

/svnroot/git-dumps/software/svn2git/scripts/dump-wmf-ext

To dump core, do the following:

/svnroot/git-dumps/software/svn2git/scripts/dump-core

Step 2: Repack the dump(s)

edit

git-fast-import is horribly inefficient at chosing deltas, so we should repack the repos before pushing them. To repack all extensions (this can take awhile):

/svnroot/git-dumps/software/svn2git/scripts/repack-wmf-ext

If you're only wanting to repack like 1 or 2 extensions, you can save time by changing to the extension directory (cd /svnroot/git-dumps/mediawiki/extensions/foo) and issuing the following:

git repack -a -d -f --depth=250 --window=250

To repack core:

/svnroot/git-dumps/software/svn2git/scripts/repack-core

Note: Per G+ discussion with Antoine, this probably isn't required, but it can't hurt.

Step 3: Give yourself push access

edit

Right now, only the platform-engineering group can push to mediawiki/* projects. Antoine and Chad are in this group already, and this document mainly applies to them, so this should be ok. If you're trying to do this work (Roan? Ryan?), just add yourself to that group.

Step 4: Push the repo(s)

edit

To push all extensions:

/svnroot/git-dumps/software/svn2git/scripts/push-wmf-ext

To push core:

/svnroot/git-dumps/software/svn2git/scripts/push-core