Ho un gancio post-aggiornamento sul mio server, in modo tale che quando hoQuale utente esegue il hook git?
git push
lo fa un tirare la directory web dal vivo. Tuttavia, mentre il push riesce sempre, l'hook post-update a volte fallisce.
Il gancio è piuttosto semplice:
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
cd /var/www
env -i git pull
sto spingendo gli aggiornamenti da una varietà di luoghi, ma a volte devo effettuare il login come root sul server e manuall fare un
env -i git pull
Devo farlo solo il 20% delle volte però. Qualche idea sul perché fallirebbe a caso? Inoltre, come posso ottenere di registrare i messaggi di errore, dal momento che potrebbe essere in esecuzione come qualcuno che non può scrivere sul file system?
Stai spingendo allo stesso modo da tutti questi posti? Cioè, l'URL remoto è lo stesso per tutti loro? (in particolare, la parte utente @ hostname) – Cascabel
Inoltre, quando dici che fallisce, vuoi dire che fallisce con un errore di autorizzazione negato che indica che è in esecuzione come utente con privilegi insufficienti? O sta fallendo per qualche motivo completamente non correlato, niente a che fare con l'uid che lo esegue? – Cascabel
In realtà sto spingendo da punti diversi: a volte è user1 @ hostname, othertimes, user2 @ hostname, ecc (tutti hanno però questo problema). Fallisce senza un messaggio di errore che posso vedere, e non sono sicuro di come ottenerne uno. Nel mio post-aggiornamento, ho aggiunto, echo $ USER> /log.txt, ma non vi è scritto nulla (né il file è stato creato). Questo mi fa pensare che l'utente che spinge, non ha permessi. Ma se non riesco nemmeno a scrivere un messaggio di errore, come faccio a saperlo? – ash