git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] cache-tree: populate cache-tree on successful merge

From
David Turner <dturner@twopensource.com>
Date
Jul 28, 2015, 21:18 UTC
Message-ID
<1438118327.18134.42.camel@twopensource.com>
In-Reply-To
<xmqqsi88c8m9.fsf@gitster.dls.corp.google.com>
On Tue, 2015-07-28 at 13:47 -0700, Junio C Hamano wrote:
Show 17 quoted lines
> David Turner <dturner@twopensource.com> writes:
> 
> > When we unpack trees into an existing index, we discard the old index
> > and replace it with the new, merged index.  Ensure that this index has
> > its cache-tree populated.  This will make subsequent git status and
> > commit commands faster.
> >
> > Signed-off-by: David Turner <dturner@twopensource.com>
> > Signed-off-by: Brian Degenhardt <bmd@bmdhacks.com>
> > ---
> >
> > This patch is by my colleague, Brian Degenhardt (as part of his work
> > on git at Twitter).  I'm sending it with his and Twitter's approval.
> 
> I'd need to tweak the From:/Author: line then, and flip the order of
> the sign-off, as Brian wrote and signed off then David relayed (as
> attached).

Where do I put an Author: line? In the commit message above the signoffs? As an email header? I didn't see an option to git send-email that would do this. I don't want to use the From: header because I want to be the point-of-contact for these patches.

Show 24 quoted lines
> > diff --git a/unpack-trees.c b/unpack-trees.c
> > index 2927660..befc247 100644
> > --- a/unpack-trees.c
> > +++ b/unpack-trees.c
> > @@ -1156,6 +1156,13 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
> >  	o->src_index = NULL;
> >  	ret = check_updates(o) ? (-2) : 0;
> >  	if (o->dst_index) {
> > +		if (!o->result.cache_tree)
> > +			o->result.cache_tree = cache_tree();
> > +
> > +		if (!cache_tree_fully_valid(o->result.cache_tree)) {
> > +			cache_tree_update(&o->result, WRITE_TREE_SILENT | WRITE_TREE_REPAIR);
> > +		}
> 
> This does the cache-tree thing unconditionally, not "on successful
> merge".  cache_tree_update() would refuse when it sees an unmerged
> entry, but somehow the discrepancy between the title and the code
> bothers me.
> 
> By the way, I wonder if we can lose/revert aecf567c (cache-tree:
> create/update cache-tree on checkout, 2014-07-05), now the
> underlying unpack_trees() does the necessary cache_tree_update()
> when a branch is checked out.

Well, the tests still pass, so I guess so. That is, we still need the WRITE_TREE_REPAIR bit, but not the update check.

Will re-roll once I hear back on the author line.
Previous: Junio C HamanoNext: Junio C Hamano
Message 9 of 10 in “cache-tree: populate cache-tree on successful merge”
  1. cache-tree: populate cache-tree on successful mergeDavid Turner, Jul 28, 2015
  2. Junio C HamanoJul 28, 2015
  3. David TurnerJul 28, 2015
  4. Junio C HamanoJul 28, 2015
  5. Junio C HamanoJul 28, 2015
  6. David TurnerJul 28, 2015
  7. Junio C HamanoJul 28, 2015
  8. Junio C HamanoJul 28, 2015
  9. David TurnerJul 28, 2015
  10. Junio C HamanoJul 28, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.