On Mon, Dec 9, 2013 at 3:40 PM, Thomas Gummerer <t.gummerer@xxxxxxxxx> wrote: > git diff --no-index ... currently reads the index, during setup, when > calling gitmodules_config(). This results in worse performance when > the index is not actually needed. This patch avoids calling > gitmodules_config() when the --no-index option is given. The times for > executing "git diff --no-index" in the WebKit repository are improved as > follows: > > Test HEAD~3 HEAD > ------------------------------------------------------------------ > 4001.1: diff --no-index 0.24(0.15+0.09) 0.01(0.00+0.00) -95.8% > > An additional improvement of this patch is that "git diff --no-index" no > longer breaks when the index file is corrupt, which makes it possible to > use it for investigating the broken repository. > > To improve the possible usage as investigation tool for broken > repositories, setup_git_directory_gently() is also not called when the > --no-index option is given. > > Also add a test to guard against future breakages, and a performance > test to show the improvements. > > Signed-off-by: Thomas Gummerer <t.gummerer@xxxxxxxxx> > --- > diff --git a/t/t4053-diff-no-index.sh b/t/t4053-diff-no-index.sh > index 979e983..d3dbf6b 100755 > --- a/t/t4053-diff-no-index.sh > +++ b/t/t4053-diff-no-index.sh > @@ -29,4 +29,10 @@ test_expect_success 'git diff --no-index relative path outside repo' ' > ) > ' > > +test_expect_success 'git diff --no-index with broken index' ' > + cd repo && > + echo broken >.git/index && > + git diff --no-index a ../non/git/a && > +' Stray && on the last line of the test. Also, don't you want to do the 'cd' and subsequent commands inside a subshell so that tests added after this one won't have to worry about cd'ing back to the top-level? > + > test_done > -- > 1.8.5.4.g8639e57 -- 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