2010-01-12 15 views
25

Utilizziamo ganci Git personalizzati nel nostro progetto.Gestione git hook

Gli hook sono memorizzati nel repository di un progetto e, quando cambiano, per ottenere una nuova versione, ogni utente deve copiarli manualmente nella sua directory .git/hooks. Questo è piuttosto scomodo.

Un modo per migliorare è quello di rendere .git/aggancia un link simbolico in worktree. Ma ciò implicherebbe che ogni ramo (anche i rami di funzionalità locali dell'utente in fase di sviluppo) dovrebbero avere la versione più aggiornata di hook. Questo non è conveniente pure.

Come risolverebbe il problema?

risposta

12

Mantieni un repository separato dei tuoi hook e link simbolici.

Sono d'accordo, sarebbe bello se Git avesse un meccanismo integrato per la propagazione degli script di hook ma non lo fosse.

+1

Questa è un'opzione, ovviamente, ma questo è un altro repository da aggiornare al mattino ... Per ogni sviluppatore. Suppongo di aver bisogno di un po 'di automazione ... –

0

Abbiamo creato. Git/ganci un collegamento simbolico nell'albero di lavoro.

Per quelle rare occasioni in cui qualcuno deve impegnarsi file che i ganci rifiuterà, usiamo git commit --no-verify

+0

Questo commit git --no-verify è pericoloso. È difficile rebase quando hai cattivi commit. –

+1

@Alexander, git rebase prenderà anche un flag --no-verify. –

+0

Grazie, l'ho perso. Ancora ... un hack. :-) –

2

si potrebbe fare .git directory un repository git del repository, e basta aggiungere ami ed altri oggetti di configurazione ad esso, aggiungendo la objects, refs, ecc directory e file come index alla sua .gitignore. Non solo, ma è possibile impostare un hook post-ricezione per aggiornare il metarepo dalla sua origine. Dopo aver configurato la configurazione iniziale, è possibile che sia possibile eseguire aggiornamenti senza ulteriori sforzi.

Sto elaborando i dettagli di questo, come quello che dovrebbe andare nella lista di ignora; Sto mantenendo i risultati nelle filiali di this repo.

1

Per i progetti NodeJS-based, vi consiglio di dare un'occhiata a ghooks.