Sto cercando di utilizzare il gancio post-commit
seguente per la distribuzione su una particolare directory dopo ogni successo commit:Perché l'impostazione di GIT_WORK_TREE non funziona in un hook post-commit?
#!/bin/sh
export GIT_WORK_TREE=/var/www/example/
export GIT_DIR=/home/mark/test/.git/
git checkout -f
Tuttavia, dopo aver commesso ottengo il seguente errore:
$ git commit -m 'An example commit.'
fatal: Unable to create '/var/www/example/.git/index.lock': No such file or directory
[master 0938e48] An example commit.
... come se l'impostazione GIT_WORK_TREE
fosse ignorata. Perché l'impostazione di questa variabile d'ambiente sembra non funzionare? Sto usando git versione 1.7.4.1.
questo potrebbe essere utilizzato anche per rendere disponibili le opzioni worktree e gitdir lavorano su git scorta e altri comandi? 'git --worktree --gitdir' sembra funzionare solo su determinati comandi. –
@Adam Dymitruk: ho trovato che '--work-tree = DIRECTORY' e' --git-dir = DIRECTORY' funzionano in modo affidabile al di fuori degli hook indipendentemente dal comando, fintanto che io (a) li imposto entrambi, e (b) impostarli entrambi su percorsi assoluti, proprio per evitare di dover ricordare le regole confuse su come vengono calcolati l'albero di lavoro finale e la directory del repository ... –
questo è al di fuori di un hook del tutto. un po 'di lavoro, altri no .. Dovrò confermare se alcuni di loro non funzionano a causa di percorsi relativi .. Ma sarebbe strano per quel tipo di comportamento visto che sto usando lo stesso percorso e sto cambiando il comando. –