Copie parfaite d'un repository distant

J'utilise un gestionnaire de projets avec gestion de repository GIT,mais pour l'utiliser il faut que le repository GIT soit sur le même serveur. Dans mon cas où j'ai mon repo sur un autre serveur, il fallait donc que je trouve le moyen d'avoir une copie du repo distant tout le temps à jour. Le but est de récuperer une branche de travail distante en mode "bare" et la synchroniser comme une copie parfaite.

Le code

# Récupère l'archive
git clone --bare ssh://user@serveur.kewix.fr/var/www/myproject
# Mise à jour de la branche avec les mêmes références que la branche d'origine
cd myproject
git fetch ssh://user@serveur.kewix.fr/var/www/myproject +refs/heads/*:refs/heads/*

Toute la magie est dans l'utilisation des wildcards (*) et du (+) qui permet d'écraser tout ce qu'on a sur la branche locale et même nos propres commits s'il y en a. De cette façon nous avons une copie parfaite du travail réalisé sur la branche distante.

Et voilà, il suffit juste maintenant de rajouter dans un petit cron de la synchro pour que cela se fasse automatiquement !

Sources

http://kerneltrap.org