David Turner <dtur...@twopensource.com> writes:

> During the commit process, the cache-tree is updated. We need to write
> this updated cache-tree so that it's ready for subsequent commands.
>
> Add test code which demonstrates that git commit now writes the cache
> tree.  Also demonstrate that  cache-tree invalidation is correct.
>
> Signed-off-by: David Turner <dtur...@twitter.com>
> ---
>  builtin/commit.c      |  6 ++++++
>  t/t0090-cache-tree.sh | 50 +++++++++++++++++++++++++++++++++++++++++++++++---
>  2 files changed, 53 insertions(+), 3 deletions(-)
>
> diff --git a/builtin/commit.c b/builtin/commit.c
> index 9cfef6c..6814e87 100644
> --- a/builtin/commit.c
> +++ b/builtin/commit.c
> @@ -607,6 +607,8 @@ 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;
> +     static struct lock_file index_lock;
> +     int index_fd;
>  
>       /* This checks and barfs if author is badly specified */
>       determine_author_info(author_ident);
> @@ -872,6 +874,10 @@ static int prepare_to_commit(const char *index_file, 
> const char *prefix,
>               error(_("Error building trees"));
>               return 0;
>       }
> +     /* After updating the cache-tree, rewrite the index */
> +     index_fd = hold_locked_index(&index_lock, 0);
> +     if (index_fd >= 0 && write_index(&the_index, index_fd) >= 0)
> +             commit_locked_index(&index_lock);

Is this run unconditionally even when we are making a partial commit
out of a temporary index file (which will be discarded after we
create this commit)?

I have a feeling that a better place to populate the cache-tree may
be prepare-index which knows the distinction between various modes
of commit, but I haven't looked at the code path for a while...
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to