On Mon, Sep 01, 2014 at 04:49:28PM -0400, David Turner wrote: > On Sun, 2014-08-31 at 13:07 +0100, John Keeping wrote: > > 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@xxxxxxxxxxx> > > > --- > > > > This causes an incorrect error message to be printed when switching > > branches with staged changes in a subdirectory. The test case is pretty > > simple: > <snip> > > I tried to reproduce this problem, but I could not. I tried to > reproduce against just this patch 1/4, and also against all 4 of the > patches. Can you reproduce this on Junio's 'next' branch, which > includes this series of patches? > > Do you have some sort of unusual configuration that might cause > different results? I don't think so. I wondered if "status.branch=true" in the config could do it, but there's no difference turning that off. The rest of the config looks like this: -- >8 -- core.excludesfile=~/.gitexcludes push.default=upstream color.ui=auto [snip alias.*] [snip user.*] [snip url.*.insteadof] [snip sendemail.*] rebase.autosquash=true mailinfo.scissors=true format.thread=true rerere.enabled=true status.branch=true pull.ff=true credential.helper=cache diff.tool=vimdiff merge.tool=vimdiff core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true -- 8< -- The following script (run from the Git source directory) bisects down to: aecf567cbfb6ab46e82f7f5df36fb6a2dd5bee69 is the first bad commit commit aecf567cbfb6ab46e82f7f5df36fb6a2dd5bee69 Author: David Turner <dturner@xxxxxxxxxxxxxxxx> Date: Sat Jul 5 21:06:56 2014 -0700 cache-tree: create/update cache-tree on checkout -- >8 -- #!/bin/sh 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 branch other ) && cat >BISECT.sh <<\EOF && #!/bin/sh make -j4 && cd test && ../bin-wrappers/git checkout other 2>&1 | grep 'error:' result=$? git checkout master if test $result = 0 then exit 1 else exit 0 fi EOF chmod +x BISECT.sh && git bisect start origin/next origin/master && git bisect run ./BISECT.sh -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html