git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Dmitry Potapov <dpotapov@gmail.com>,
	Steffen Prohaska <prohaska@zib.de>,
	tormod.hystad@gmail.com, msysGit <msysgit@googlegroups.com>,
	git@vger.kernel.org
Subject: Re: [PATCH] Introduce core.initHook
Date: Mon, 24 Mar 2008 13:25:16 -0700	[thread overview]
Message-ID: <7vr6dzuaxf.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <alpine.LSU.1.00.0803241611200.4353@racer.site> (Johannes Schindelin's message of "Mon, 24 Mar 2008 16:12:53 +0100 (CET)")

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> diff --git a/Documentation/git-init.txt b/Documentation/git-init.txt
> index 03a4f0e..e082218 100644
> --- a/Documentation/git-init.txt
> +++ b/Documentation/git-init.txt
> @@ -60,6 +60,9 @@ If you are initializing a non-bare repository, the config variable
>  `receive.guardCurrentBranch` is set to true.  This avoids problems with
>  pushing into the current branch, which does not touch the working tree.
>  
> +If you want to run a specific script everytime git-init was issued, you
> +can set the variable `core.initHook`.

... in your $HOME/.gitconfig, naturally ;-)

I like the general idea, but with a few nits.

The hook might want to differentiate its behaviour based on how git-init
was invoked, don't you think?  E.g. was it because the end user wanted to
create a new repo?  Re-init?  Clone, cvsimport or some other higher level
commands invoked git-init on the user's behalf?).  The higher level ones
could communicate it via environment so we do not have to worry about them
too much (except perhaps in the documentation part to help hook writers),
but at least re-init is something init-db alone would be able to tell the
hook, so either a parameter to the hook or an environment exported to it
would be needed.  The hook can figure out 'shared' and 'bare' by reading
from $GIT_DIR/config itself, but are there other things we may want to
tell the hook?

> +static int config_init_hook(const char *key, const char *value)
> +{
> +	if (!strcmp(key, "core.inithook"))
> +		init_hook = xstrdup(value);
> +	return 0;

The current way to spell this is with git_config_string() to protect
yourself from segfaulting on:

	[core]
        	inithook


> @@ -407,6 +430,9 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
>  		git_config_set("receive.denyNonFastforwards", "true");
>  	}
>  
> +	if (run_init_hook())
> +		return 1;
> +

Hmm.  Exit without a message even under !quiet?

>  	if (!quiet)
>  		printf("%s%s Git repository in %s/\n",
>  		       reinit ? "Reinitialized existing" : "Initialized empty",

  parent reply	other threads:[~2008-03-24 20:26 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <f5d99ae7-e4b3-4632-ad86-8ebe0e683d49@d62g2000hsf.googlegroups.com>
     [not found] ` <alpine.LSU.1.00.0803101327390.3975@racer.site>
     [not found]   ` <bdca99240803100611s3c8b3b9djb1b993c9fbad712@mail.gmail.com>
     [not found]     ` <alpine.LSU.1.00.0803101448430.3975@racer.site>
     [not found]       ` <cb8f4255-2bf8-4489-aeb0-c18d6e932342@s13g2000prd.googlegroups.com>
     [not found]         ` <ab311292-809f-4e45-a19d-a600c2333ab6@a23g2000hsc.googlegroups.com>
     [not found]           ` <alpine.OSX.1.00.0803221036230.7618@cougar>
     [not found]             ` <7vzlsqfe2h.fsf@gitster.siamese.dyndns.org>
     [not found]               ` <alpine.LSU.1.00.0803230310500.4353@racer.site>
2008-03-23  9:31                 ` Store autocrlf during init-db (was [msysGit] autocrlf problems with Git-preview20080301.exe) Steffen Prohaska
2008-03-23  9:34                   ` [PATCH] init-db: Store current value of autocrlf Steffen Prohaska
2008-03-24  0:16                     ` Dmitry Potapov
2008-03-23 11:01                   ` Store autocrlf during init-db (was [msysGit] autocrlf problems with Git-preview20080301.exe) Johannes Schindelin
2008-03-23 12:30                     ` Steffen Prohaska
2008-03-23 13:05                       ` [msysGit] " Johannes Schindelin
2008-03-23 13:42                         ` Steffen Prohaska
2008-03-23 14:07                           ` [msysGit] " Johannes Schindelin
2008-03-23 15:50                             ` Steffen Prohaska
2008-03-23 16:35                               ` Johannes Schindelin
2008-03-23 22:53                                 ` Steffen Prohaska
2008-03-23 23:39                                   ` [msysGit] " Johannes Schindelin
2008-03-23 23:56                           ` Dmitry Potapov
2008-03-24  0:01                             ` [msysGit] " Johannes Schindelin
2008-03-24  0:23                               ` Dmitry Potapov
2008-03-24 10:57                                 ` Johannes Schindelin
2008-03-24 12:21                                   ` Dmitry Potapov
2008-03-24 15:12                                     ` [PATCH] Introduce core.initHook Johannes Schindelin
2008-03-24 15:14                                       ` [PATCH] init: show "Reinit" message even in an (existing) empty repository Johannes Schindelin
2008-03-25  7:35                                         ` Junio C Hamano
2008-03-25  9:55                                           ` Johannes Schindelin
2008-03-24 20:25                                       ` Junio C Hamano [this message]
2008-03-24 21:40                                         ` [PATCH v2] Introduce core.initHook Johannes Schindelin
2008-03-24 22:40                                           ` Junio C Hamano
2008-03-24 23:21                                             ` [PATCH v3] " Johannes Schindelin

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=7vr6dzuaxf.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=dpotapov@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=msysgit@googlegroups.com \
    --cc=prohaska@zib.de \
    --cc=tormod.hystad@gmail.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).