Je suis juste allé à travers cela. Je suis en train de faire quelque chose de similaire à rq, mais légèrement différente.
J'ai d'installation de l'un de mes serveurs pour héberger ces git clones de la svn repos dont j'ai besoin. Dans mon cas, je veux seulement en lecture seule versions, et ont besoin d'un nu repo sur le serveur.
Sur le serveur j'ai exécuter:
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
C'est ma nu repo, alors j'ai un script cron pour mettre à jour:
#!/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')`
Cela nécessite aussi fix-svn-refs.sh à partir de http://www.shatow.net/fix-svn-refs.sh
Cela a été principalement inspiré par: http://gsocblog.jsharpe.net/archives/12
Je ne suis pas sûr pourquoi l' git gc
est nécessaire ici, mais je n'étais pas capable de faire un git pull
sans elle.
Alors, après tout cela, vous pouvez utiliser git sous-module suivant rq ses instructions.