2011-08-29 15 views
9

Ho letto tutto the documentation about hooks, similarquestions e a lot of code ma non riesco a tenere traccia di dove si trova l'errore nella mia procedura. Devo installare un semplice gancio nella mia installazione gitolite (realizzata con un pacchetto rpm su CentOS): ecco quello che ho fatto:Come installare ganci in gitolite

Per installare gitolite (qualche tempo fa):

  1. installato il pacchetto rpm
  2. # su - gitolite
  3. $ gl-setup /tmp/fabio.pub (come utente gitolite)

Ora per installare il gancio:

0.123.
  1. creato un file di esempio post-update con il codice gancio in ~gitolite/.gitolite/hooks/common e chmod +x su di esso
  2. run gl-setup /tmp/fabio.pub di nuovo come stated here

Ma è accaduto nulla, lo stato di uscita dall'ultimo comando è 0, ma il gancio il file non è symlink in nessuno dei repository. Allora, cosa c'è di sbagliato nella mia procedura? Ho perso qualcosa?

domande bonus:

  1. Se avessi capito il doc mia procedura è quella giusta? Cioè dovrei eseguire gl-setup ogni volta che aggiorno qualsiasi hook?
  2. In questo modo installo i ganci condivisi in ogni repository con questa installazione gitolite, giusto? Posso installare manualmente un hook come collegamento simbolico a qualche parte o solo uno script eseguibile solo per un determinato repository? Dovrei farlo manualmente nella cartella hook del repository dato? Dovrei preoccuparmi dei conflitti tra hook (ad esempio, qualsiasi hook personalizzato per il singolo repository blocca qualsiasi altro hook condiviso con lo stesso nome)?

Non so se questo è importante, la mia versione gitolite è 1.5.9.1.

risposta

0

Ho appena scoperto che se ho copiato il mio campione di hook in /usr/share/gitolite/hooks/common/ sarà symlinked da gl-setup. Forse in questo pacchetto la variabile $GL_ADMINDIR non è impostata per qualche motivo. Ancora due domande bonus ...

0

è necessario aggiungere un hook update.secondary nella directory quindi ridistribuire con gl-easyinstall. Dai un'occhiata al gancio di aggiornamento fornito con gitolite. Vedrai che verso la fine chiama update.secondary. Se lo fornite, funzionerà.

+0

Non ho bisogno di un hook di aggiornamento, quindi non penso che questo risolva il mio problema. Inoltre ho installato da un pacchetto, quindi penso che il mio comando non sia 'gl-easyinstall' ma' gl-setup'. – Fabio

+0

aggiorni i ganci nel clone gitolite e quindi riesegui lo script di installazione semplice. Qual è l'obiettivo del tuo gancio? La maggior parte delle cose viene eseguita tramite il gancio di aggiornamento. –

+0

[questo è l'hook che mi serve] (https://github.com/kahseng/redmine_gitolite_hook/blob/master/contrib/hooks/post-receive-redmine_gitolite). Semplicemente non posso eseguire 'gl-easyinstall' perché non ho un clone locale da quando ho installato gitolite usando il [metodo del pacchetto] (https://github.com/sitaramc/gitolite/blob/pu/doc /1-INSTALL.mkd#_package_method). – Fabio

1

In Gitolite v3 puoi scegliere dove mettere i ganci modificando la variabile LOCAL_CODE in .gitolite.rc. Vedere l'origine del file per ulteriori opzioni (ad esempio l'abilitazione per i repo personalizzati)

Quindi si mettono i ganci nella directory specificata, rendendoli eseguibili ed eseguiti gitolite setup --hooks-only.