On Sat, Apr 29, 2017 at 2:28 PM, Simon Ruderich <simon@xxxxxxxxxxxx> wrote: > Listing the specific hooks might feel verbose but without it the > reader is left to wonder which hooks are triggered during the > push. Something which is not immediately obvious when only trying > to find out where the hook is executed. > > Signed-off-by: Simon Ruderich <simon@xxxxxxxxxxxx> > --- > Documentation/githooks.txt | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > On Mon, Apr 10, 2017 at 01:13:15PM +0200, Ęvar Arnfjörš Bjarmason wrote: >> [snip] >> >> Can we say as we do now that: >> >> * All hooks regardless of type in bare repos execute in the bare repo >> * If you have a working tree hooks use that >> >> But add: >> >> * Working trees are ignored by any hooks invoked on your behalf during a push. > > Hello, > > Maybe like this? I reordered the cases as it felt more natural > that the general case is first and followed by the one with the > exception. > >> Some ad-hoc testing reveals that this rule also goes for the >> push-to-checkout hook. Should it? Wouldn't it be more useful if it >> broke the pattern, since it's dealing with the working tree on the >> other side? Junio? > > I added push-to-checkout to the patch. Changing the behavior will > break backwards compatibility so I think that's a no-go. > > Regards > Simon > > diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt > index 32343ae29..706091a56 100644 > --- a/Documentation/githooks.txt > +++ b/Documentation/githooks.txt > @@ -22,8 +22,10 @@ changed via the `core.hooksPath` configuration variable (see > linkgit:git-config[1]). > > Before Git invokes a hook, it changes its working directory to either > -the root of the working tree in a non-bare repository, or to the > -$GIT_DIR in a bare repository. > +$GIT_DIR in a bare repository or the root of the working tree in a non-bare > +repository. An exception are hooks triggered during a push ('pre-receive', > +'update', 'post-receive', 'post-update', 'push-to-checkout') which are always > +executed in $GIT_DIR. > > Hooks can get their arguments via the environment, command-line > arguments, and stdin. See the documentation for each hook below for This looks good to me. Thanks for working on this.