threads / discuss / 27944

Why isn't there a hook for all operations that update the working tree?

Subject: Why isn't there a hook for all operations that update the working tree?

## tl;dr

3 messages between Jul 28, 2011 and Aug 4, 2011.

replies: 2people: 3as markdown or json

Ævar Arnfjörð Bjarmason· Jul 28, 2011, 11:59 UTC · lore

I have a repository where I'd like to run a program every time the working tree is updated. githooks(5) specifies that you can use post-{checkout,merge} hooks to hook into those two operations.

However that doesn't catch e.g. "git reset --hard". Is there any reason beside omission that there isn't a post-reset hook? Or hooks for any other thing (most of which surely slip my mind) which can update the working tree?

Neal Kreitzinger· Aug 4, 2011, 01:56 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: Why isn't there a hook for all operations that update the working tree?

On 7/28/2011 6:59 AM, Ævar Arnfjörð Bjarmason wrote:
Show 8 quoted lines
> I have a repository where I'd like to run a program every time the
> working tree is updated. githooks(5) specifies that you can use
> post-{checkout,merge} hooks to hook into those two operations.
>
> However that doesn't catch e.g. "git reset --hard". Is there any
> reason beside omission that there isn't a post-reset hook? Or hooks
> for any other thing (most of which surely slip my mind) which can
> update the working tree?
You could create an alias like "git resetr" that runs the script.

v/r, neal

Junio C Hamano· Aug 4, 2011, 02:06 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: Why isn't there a hook for all operations that update the working tree?

Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> ... Is there any
> reason beside omission that there isn't a post-reset hook?
> Or hooks for any other thing ...

In principle, we historically tended to avoid hooks unless absolutely necessary. Even having to check to find out no hook needs to be run is considered wasted cycles.

  http://thread.gmane.org/gmane.comp.version-control.git/79314/focus=79321

I'd especially rather not to see a hook on something as low level as "reset". It would be too tempting to use "reset" itself inside a hook that is run from the post-reset hook, and I do not want to complicate the code even further to give callers to ask disabling the hook.

← back to recent threads