Saya baru saja melewati ini. Saya melakukan sesuatu yang mirip dengan rq, tetapi sedikit berbeda. Saya mengatur salah satu server saya untuk meng-host klon git dari repo svn yang saya butuhkan. Dalam kasus saya, saya hanya ingin versi read-only, dan perlu repo telanjang di server.
Di server saya jalankan:
GIT_DIR=<projectname>.git git init
cd <projectname>.git/
GIT_DIR=. git svn init svn://example.com/trunk
GIT_DIR=. git svn fetch
git gc
Ini mengatur repo kosong saya, maka saya memiliki skrip cron untuk memperbaruinya:
#!/usr/bin/python
import os, glob
GIT_HOME='/var/www/git'
os.chdir(GIT_HOME)
os.environ['GIT_DIR']='.'
gits = glob.glob('*.git')
for git in gits:
if not os.path.isdir(git):
continue
os.chdir(os.path.join(GIT_HOME, git))
if not os.path.isdir('svn/git-svn'):
#Not a git-svn repo
continue
#Pull in svn updates
os.system('git svn fetch && git gc --quiet')
#fix-svn-refs.sh makes all the svn branches/tags pullable
os.system('fix-svn-refs.sh')
#Update the master branch
os.system('git fetch . +svn/git-svn:master && git gc --quiet')`
Ini juga memerlukan fix-svn-refs.sh dari http://www.shatow.net/fix-svn-refs.sh.
Hal ini sebagian besar terinspirasi oleh: http://gsocblog.jsharpe.net/archives/12
Saya tidak yakin mengapa git gcini diperlukan di sini, tetapi saya tidak dapat melakukannya git pulltanpa itu.
Jadi setelah semua ini, Anda kemudian dapat menggunakan submit git mengikuti instruksi rq.