2010-06-07 8 views

Répondre

3

Comme Subversion Git propose un mécanisme de crochet, aussi. Consultez la page de manuel githooks. Fondamentalement, vous avez juste besoin d'écrire une caisse et de déployer un script pour votre application PHP en tant que hook post-commit.

Pour github, vous devriez jeter un oeil à leur mécanisme webhooks.

+0

S'il vous plaît, expliquer plus. Merci pour la réponse rapide. –

+2

Eh bien, si vous utilisez votre propre dépôt git, vous pouvez écrire des scripts shell qui seront exécutés après un certain événement (par exemple post-checkout, pré-validation, post-validation) occurrences. Ce script shell doit alors simplement récupérer le référentiel sur le serveur que vous souhaitez exécuter. Github (avec lequel vous avez tagué cette question) utilise un mécanisme similaire appelé webhooks qui appelle une certaine URL au lieu d'un script shell. – Daff

+0

Oh, maintenant je comprends, merci beaucoup pour une réponse bien expliquée et la réponse rapide! –

1

S'il n'y a pas git séparé sur le second serveur, j'exporter des fichiers d'archives:

git checkout-index -a -f --prefix=/target/path/ 

Et puis utilisé sftp pour synchroniser avec le serveur distant:

#!/bin/bash 
HOST="ftp.example.com" 
USER="user" 
PASS="pass" 
LCD="/var/www/yourdir" 
RCD="/www/" 
lftp -c " 
#debug; 
open ftp://$USER:[email protected]$HOST; 
lcd $LCD; 
cd $RCD; 
mirror --only-newer \ 
     --reverse \ 
     --verbose \ 
     --exclude-glob somepattern "; 

Vous pouvez automatiser ce processus en tant que script de construction (par exemple Phing), notre bind en tant que git hook de validation de publication, comme cela a déjà été mentionné.

Questions connexes