git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andreas Ericsson <ae@op5.se>
To: "Karl Hasselström" <kha@treskal.com>
Cc: Jon Smirl <jonsmirl@gmail.com>, Git Mailing List <git@vger.kernel.org>
Subject: Re: StGit hooks
Date: Wed, 28 Nov 2007 15:11:28 +0100	[thread overview]
Message-ID: <474D7710.4090303@op5.se> (raw)
In-Reply-To: <20071128132605.GB15953@diana.vm.bytemark.co.uk>

Karl Hasselström wrote:
> On 2007-11-28 14:14:15 +0100, Andreas Ericsson wrote:
> 
>> Karl Hasselström wrote:
>>
>>> On 2007-11-28 12:44:02 +0100, Andreas Ericsson wrote:
>>>
>>>> Karl Hasselström wrote:
>>>>
>>>>> Also, if StGit is to set up hooks automatically (commit hooks,
>>>>> pre-rebase hooks, whatever), it'd be nice to not have to worry
>>>>> about overwriting any existing hooks the user might have. But
>>>>> git currently allows only one hook script per hook, right?
>>>> Yes, but you can obviously call any number of scripts and
>>>> programs from within the hook that git executes.
>>> That doesn't help here, however, since the user and not StGit
>>> "owns" the "top-level" hook. StGit would have to rely on the user
>>> having installed a specific kind of multiplexer as a hook script
>>> (e.g. one that executes everything under .git/hooks/$hook.d/). Or
>>> it would have to install it itself, and hope that moving any
>>> existing hook to the subdirectory where the multiplexer looks for
>>> hooks doesn't break anything. Both solutions are problematic.
>> The user-defined hook can be kept in the hooks directory too. It
>> just needs to be named in such a way that git will never have a hook
>> named like that. For that reason, I think it would be easiest to
>> just agree for the git core to never call any hooks prefixed with
>> "stgit" or some such. I think the odds for it happening by chance
>> are remote, to say the least.
> 
> You've lost me. :-/
> 
> Take the pre-commit hook as an example. git will call
> ".git/hooks/pre-commit" when interesting stuff happens. Now StGit
> wants to install its pre-commit hook in an existing repository, and
> finds that there already is a file called ".git/hooks/pre-commit".
> What should it do?
> 

Move the existing hook to ".git/hooks/stgit-moved.pre-commit". So
long as the hook doesn't care what its named (which would only matter
in the insane case where the repository has a single hook with a lot
of links going to it), this will work with relative paths that worked
earlier.

> It could move ".git/hooks/pre-commit" to
> ".git/hooks/pre-commit.d/user_hook", install its own hook in
> ".git/hooks/pre-commit.d/stgit_hook", and install a multiplexer at
> ".git/hooks/pre-commit". But that makes some assumptions, e.g. that
> the user's hook can handle being moved, and that the user is fine with
> this.
> 
> I don't see a good way around this other than having git mandate the
> multiplexing scheme.
> 

Multiplexing the execution of those hooks would be a very bad idea
indeed, but that's a different issue.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

  reply	other threads:[~2007-11-28 14:12 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-27 22:17 stgit: lost all my patches again Jon Smirl
2007-11-27 22:24 ` Jakub Narebski
2007-11-27 23:12 ` Jon Smirl
2007-11-28  9:34   ` Karl Hasselström
2007-11-28 10:17     ` StGit hooks Karl Hasselström
2007-11-28 11:44       ` Andreas Ericsson
2007-11-28 12:19         ` Karl Hasselström
2007-11-28 13:14           ` Andreas Ericsson
2007-11-28 13:26             ` Karl Hasselström
2007-11-28 14:11               ` Andreas Ericsson [this message]
2007-11-28 14:53                 ` Jon Smirl
2007-11-28 14:58                   ` Andreas Ericsson
2007-11-28 15:40                     ` Karl Hasselström
2007-11-28 17:06                       ` Andreas Ericsson
2007-11-28 17:21                         ` Karl Hasselström
2007-11-28 19:31                           ` Junio C Hamano
2007-11-28 15:06     ` stgit: lost all my patches again Jon Smirl
2007-11-28 16:04       ` Karl Hasselström
2007-11-28 16:21         ` Jon Smirl
2007-11-28 16:41           ` Karl Hasselström
2007-11-28 16:58             ` Jon Smirl
2007-11-28 17:19               ` Karl Hasselström
2007-11-30  6:35             ` [StGit PATCH] Make "stg repair" help text more helpful Karl Hasselström
2007-11-28  0:37 ` stgit: lost all my patches again Junio C Hamano
2007-11-28  2:59   ` Jon Smirl
2007-11-28  6:32     ` Karl Hasselström

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=474D7710.4090303@op5.se \
    --to=ae@op5.se \
    --cc=git@vger.kernel.org \
    --cc=jonsmirl@gmail.com \
    --cc=kha@treskal.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).