From: Junio C Hamano <gitster@pobox.com>
To: Kevin Willford <kcwillford@gmail.com>
Cc: git@vger.kernel.org, peff@peff.net, peartben@gmail.com,
Kevin Willford <kewillf@microsoft.com>
Subject: Re: [PATCH] commit: skip discarding the index if there is no pre-commit hook
Date: Thu, 10 Aug 2017 15:22:54 -0700 [thread overview]
Message-ID: <xmqqo9rn12rl.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170810185416.8224-1-kewillf@microsoft.com> (Kevin Willford's message of "Thu, 10 Aug 2017 14:54:16 -0400")
Kevin Willford <kcwillford@gmail.com> writes:
> If there is not a pre-commit hook, there is no reason to discard
> the index and reread it.
>
> This change checks to presence of a pre-commit hook and then only
> discards the index if there was one.
>
> Signed-off-by: Kevin Willford <kewillf@microsoft.com>
> ---
Peff already has done a good job reviewing the patch text, and I
agree that this is a worthwhile optimization.
Could Microsoft folks all make sure that their signed-off-by lines
match their From: address (or leave an in-body From: to override
the From: address your MUA places in your messages)?
Thanks.
> builtin/commit.c | 29 +++++++++++++++++++++--------
> 1 file changed, 21 insertions(+), 8 deletions(-)
>
> diff --git a/builtin/commit.c b/builtin/commit.c
> index e7a2cb6285..443949d87b 100644
> --- a/builtin/commit.c
> +++ b/builtin/commit.c
> @@ -671,12 +671,22 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
> const char *hook_arg2 = NULL;
> int clean_message_contents = (cleanup_mode != CLEANUP_NONE);
> int old_display_comment_prefix;
> + const char *precommit_hook = NULL;
>
> /* This checks and barfs if author is badly specified */
> determine_author_info(author_ident);
>
> - if (!no_verify && run_commit_hook(use_editor, index_file, "pre-commit", NULL))
> - return 0;
> +
> + if (!no_verify) {
> + /*
> + * Check to see if there is a pre-commit hook
> + * If there not one we can skip discarding the index later on
> + */
> + precommit_hook = find_hook("pre-commit");
> + if (precommit_hook &&
> + run_commit_hook(use_editor, index_file, "pre-commit", NULL))
> + return 0;
> + }
>
> if (squash_message) {
> /*
> @@ -940,12 +950,15 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
> return 0;
> }
>
> - /*
> - * Re-read the index as pre-commit hook could have updated it,
> - * and write it out as a tree. We must do this before we invoke
> - * the editor and after we invoke run_status above.
> - */
> - discard_cache();
> + if (!no_verify && precommit_hook) {
> + /*
> + * Re-read the index as pre-commit hook could have updated it,
> + * and write it out as a tree. We must do this before we invoke
> + * the editor and after we invoke run_status above.
> + */
> + discard_cache();
> + }
> +
> read_cache_from(index_file);
> if (update_main_cache_tree(0)) {
> error(_("Error building trees"));
next prev parent reply other threads:[~2017-08-10 22:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-10 18:54 [PATCH] commit: skip discarding the index if there is no pre-commit hook Kevin Willford
2017-08-10 19:16 ` Jeff King
2017-08-10 22:22 ` Junio C Hamano [this message]
2017-08-14 21:54 ` [PATCH v2] " Kevin Willford
2017-08-14 22:13 ` Jeff King
2017-08-15 4:23 ` Kevin Willford
2017-08-15 4:53 ` Jeff King
2017-08-15 18:05 ` Junio C Hamano
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=xmqqo9rn12rl.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=kcwillford@gmail.com \
--cc=kewillf@microsoft.com \
--cc=peartben@gmail.com \
--cc=peff@peff.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.