Re: global hooks
From: Ping Yin <hidden>
Date: 2016-06-15 22:44:24
On Thu, Mar 20, 2008 at 7:20 PM, Johan Herland [off-list ref] wrote:
On Thursday 20 March 2008, Junio C Hamano wrote: > Victor Bogado da Silva Lins [off-list ref] writes: > > > SO my question is, is there a way to make that hook global to all > > projects? If not, would it be a good idea to allow this? > > Probably a post- git-init hook that lets you do anything to your newly > created repository would be the only thing that you need. Then you can > copy, untar or even use symlink to muck with .git/hooks/ in whatever way > you please. > > There needs a mechanism for you to specify what that hook is, and it > cannot be in individual repositories, so it has to live in ~/.gitconfig > somewhere. Or you could add the hook (either the post-init hook, or for that matter the hook you want to make global) to the Git template directory on your system (/usr/share/git-core/templates by default). If you don't want to make it system-global (only user-global), I guess you could make your own Git template directory somewhere (copy the system's template dir, and add/enable whatever hooks you like), and set up an alias to "git init --template=<your_template_dir>". Then use this alias instead of "git init".
template dir is meaningful for static hooks. However, sometimes we need dynamic hooks which change over time. Having a real global hook can help to implement a single logic or policy spreading among multiple repositories. For example, we can enfore a policy to help to update the test or deploy environent automatically: when repositories are pushed into a central place, they are checked out into different places or hosts automatically. I think ~/.gitconfig is a good place to give such an entry point. -- Ping Yin