Git/Conversion/Mirror

From mediawiki.org

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