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 gc
ini diperlukan di sini, tetapi saya tidak dapat melakukannya git pull
tanpa itu.
Jadi setelah semua ini, Anda kemudian dapat menggunakan submit git mengikuti instruksi rq.