Synchronisation git pour Redmine
J’avais évoqué ici la synchronisation de dépôts Git (en l’occurrence Github mais ça n’a pas d’importance).
Mais voilà, ça ne fonctionnait plus tout à fait après migration de serveur, et ce n’était pas très clair pour moi honnêtement. Alors j’ai de nouveau regardé sur le wiki de Redmine et trouvé cet article qui décrit les choses très bien.
Seule différence, j’utilise les branches sous Git, et ce mode ne synchronise que la branche principale (“master”, ce que l’on appellerait le “trunk” sous subversion).
Initialisation de mon dépôt:
cd /var/redmine/git_repositories/ git clone —bare git@github.com:jbbarth/project.git project cd project git remote add origin git@github.com:jbbarth/project.git git fetch -v
Ajout de ceci en CRON:
#sync of my github repos for redmine */10 * * * * /var/redmine/git_repositories/sync_repositories.sh >/dev/null
Et le petit script qui va bien:
#!/bin/sh base=$(dirname $0) [ "$base" == "." ] && base=$(pwd) cd $base for repo in $(ls -F |fgrep "/"); do cd $base/$repo git fetch origin for branch in $(ls refs/remotes/origin/); do git reset —soft refs/remotes/origin/$branch done done
Youpi!