Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes: > 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? Thanks both to you and Torsten for catching both issues, I'll fix them in a re-roll. >> + >> test_done >> -- >> 1.8.5.4.g8639e57 -- Thomas -- 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