This option is removed by default, because with --full-history option (which is by default used in git_history) --parents means full history with parenthood, which means that we get all the connecting merges too. And since we asked for the _full_ history, that means EVERY SINGLE MERGE. Even those that do not change given file (or directory). Signed-off-by: Jakub Narebski <jnareb@xxxxxxxxx> --- Benchmarks (7 means patch before, 8 means this patch): # 1:gitweb/new~n 2:%e 3:%U 4:%s 5:ab-n10_cgi_time[ms] 6:[+/-sd] 7:ab-n10_perl_time[ms] 8:[+/-sd] 7 2.59 1.53 0 2621.073 234.2 2742.230 96.6 8 2.89 1.80 0 3081.722 246.6 3306.196 367.2 8 2.95 1.81 0 2952.253 155.9 3175.441 128.0 gitweb/gitweb.perl | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index edded74..68ddbe6 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1131,6 +1131,13 @@ # to parse individual commits. # # parse_rev_list parameters are passed to git-rev-list, so they should # include at least starting revision; just in case we default to HEAD +# +# if you want in parsed info to have full equivalent of first generating +# list of interesting revisions, then calling parse_commit on each of revs, +# i.e. if you want to have full parent info which includes grafts, +# you have to include '--parents' in the parse_rev_list parameters; +# it is excluded by default as it changes notion which revs are interesting +# e.g. '--full-history' with '--parents' include EVERY SINGLE MERGE. sub parse_rev_list { my @rev_opts = @_; my @revlist; @@ -1138,7 +1145,7 @@ sub parse_rev_list { @rev_opts = ("HEAD") unless @rev_opts; local $/ = "\0"; - open my $fd, "-|", git_cmd(), "rev-list", "--header", "--parents", @rev_opts + open my $fd, "-|", git_cmd(), "rev-list", "--header", @rev_opts or return \@revlist; while (my $revinfo = <$fd>) { -- 1.4.2 - 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