J'ai un dépôt vide sur notre serveur de développement ici, et un clone de cela ailleurs sur le disque . J'ai écrit un petit script de post-mise à jour comme suit:Le hook de post-mise à jour de Git s'exécute en poussant vers une machine distante à partir de TortoiseGit, mais pas depuis la ligne de commande sur la même machine
#!/bin/sh
echo Updating vhosts.git at `date` >> /root/vhosts.log
cd /usr/local/www
echo Updating `pwd` vhosts as `whoami`
OLD_GIT_DIR=$GIT_DIR
GIT_DIR=.git
git pull origin master
GIT_DIR=$OLD_GIT_DIR
apachectl restart
Lorsque vous appuyez sur le repo nu de mon ordinateur à l'aide TortoiseGit, je reçois la sortie attendue:
git.exe push "origin" master:master
Counting objects: 5, done.
Compressing objects: 100% (3/3)
Writing objects: 100% (3/3)
Writing objects: 100% (3/3), 346 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
Updating /usr/local/www vhosts as root
From /root/vhosts
* branch master -> FETCH_HEAD
Updating 0a48898..c334796
Fast forward
vhosts.conf | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
[Thu Jan 21 10:49:39 2010] [warn] module dav_module is already loaded, skipping
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
To [email protected]:vhosts.git
0a48898..c334796 master -> master
Cependant, si J'utilise le en ligne de commande git pour pousser le même clone sur le même serveur de dev, avec la même commande, même, il semble que le hook ne fonctionne pas!
C:\www\bugs_vhosts>git.exe push "origin" master:master
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 320 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To [email protected]:vhosts.git
c334796..9bedd46 master -> master
Est-ce que quelqu'un sait s'il y a un paramètre ou quelque chose d'autre que j'ai besoin de changer pour déclencher le hook après la mise à jour?
Mais c'est ce que je faisais sur la ligne de commande. Si cela fonctionnait comme il se doit, je n'aurais pas posé cette question. Désolé, il me manque quelque chose ... – Drarok
Vous écrivez 'master: master' alors que vous ne devez écrire que' master'. –
Pourquoi cela fonctionne-t-il? –