Re: [PATCH v8 1/4] cache-tree: Create/update cache-tree on checkou
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 2, 2014, 20:52 UTC
- Message-ID
- <xmqqfvg9zqw9.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <20140831120703.GA1240@serenity.lan>
John Keeping <john@keeping.me.uk> writes:
Show 33 quoted lines
> On Fri, Jul 11, 2014 at 09:44:33PM -0700, David Turner wrote: >> When git checkout checks out a branch, create or update the >> cache-tree so that subsequent operations are faster. >> >> update_main_cache_tree learned a new flag, WRITE_TREE_REPAIR. When >> WRITE_TREE_REPAIR is set, portions of the cache-tree which do not >> correspond to existing tree objects are invalidated (and portions which >> do are marked as valid). No new tree objects are created. >> >> Signed-off-by: David Turner <dturner@twitter.com> >> --- > > This causes an incorrect error message to be printed when switching > branches with staged changes in a subdirectory. The test case is pretty > simple: > > git init test && > cd test && > mkdir sub && > echo one >sub/one && > git add sub/one && > git commit -m one && > echo two >sub/two && > git add sub/two && > git checkout -b test > > After this commit the output is: > > error: invalid object 040000 0000000000000000000000000000000000000000 for 'bar' > A bar/quux > Switched to branch 'test' > > but the "error:" line should not be there.
Yeah, this seems to be broken and I am unhappy that I didn't notice it myself as I always use a version that is somewhat ahead of 'next' myself.