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