Gitolite Copia di lavoro locale per Apache DocumentRoot
-
27-10-2019 - |
Domanda
Ho una configurazione di sistema con Git e gitolite. Tutto funziona bene, tranne che voglio che la mia struttura sia così:
Ambiente locale -> Server di sviluppo -> Server di produzione
Ho una configurazione di repository sul server Dev ed è clonato correttamente nell'ambiente locale. Ora, ciò di cui ho bisogno è un filesystem locale che lavora sulla copia sul server di sviluppo, ma non sono sicuro di come farlo con il gitilite.
git clone /home/gitolote/repositories/myrepo.git
Funziona bene finché non provo a spingere/tirare, a quel punto ottengo questo:
remote: ENV GL_RC not set
remote: BEGIN failed--compilation aborted at hooks/update line 20.
remote: error: hook declined to update refs/heads/master
Qualche idea su come farlo con il gitolite?
Soluzione
Stai usando il Protocollo locale Per il tuo clone, il che significa che stai bypassando il gitolite interamente (la sceneggiatura di gitolite viene chiamata tramite a comando forzato SSH).
Dovresti creare un secondo clone sul tuo server di sviluppo, utilizzando un indirizzo compatibile con gitolite come:
git clone git@gitoliteserver:myrepo.git
Quel secondo repository sarebbe in grado di spingere/tirare da/dal server Gitolite, fornendo al contempo il "Copia di lavoro del filesystem locale" sul server di sviluppo che stai cercando.
Altri suggerimenti
Se è necessario utilizzare il file Protocollo locale, tutto ciò che serve è impostare GL_BYPASS_UPDATE_HOOK
Ambiente variabile a 1
:
gorgo@somegitoliteserver:~/testing$ GL_BYPASS_UPDATE_HOOK=1 git push
Counting objects: 3, done.
Delta compression using up to 3 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 234 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
To file:///home/gitolite/repositories/testing.git/
96be337..ab5ca6d master -> master