On Sat, Apr 23, 2016 at 1:33 AM, Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote: > Change the hardcoded lookup for .git/hooks/* to optionally lookup in > $(git config core.hooksDirectory)/* instead if that config key is set. I think this'll do for my use-case, but I started with a rather more ambitious patch that I could forsee not finishing today. I wanted to support executing e.g. the pre-commit hook, in order, from any of: .git/hooks/pre-commit .git/hooks/pre-commit.d/* [We could add some ~-wide path here I guess...] /etc/git/hooks/pre-commit /etc/git/hooks/pre-commit.d/* Where the * would be resolved in glob() order. The motivation was solving the use-case I'm solving with core.hooksDirectory, perhaps with a config variable to set whether you wanted to skip per-repo or system-wide hooks, but also having something more general. The reason for supporting the *.d directories was that I spotted a lot of hooks people had hacked up at work using the pee(1) command[1] to run sequences of other unrelated hook commands. Just symlinking stuff is simpler and more portable if we do the work in git.git once. We'd run The pee(1) command also doesn't quit on the first command that returns nonzero, which would make sense e.g. for pre-commit hooks. I have it working for the hooks that use the simple run_hook_ve() interface, but the ones that have to e.g. pass input on stdin just find_hook() directly & do a custom run_command(), so all of those callsites would have to be patched and/or I'd have to hack up some custom callback mechanism. 1. http://manpages.ubuntu.com/manpages/xenial/en/man1/pee.1.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html