[PATCH 8/8] gitweb: Remove --parents from call to git-rev-list in parse_rev_list
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Sep 6, 2006, 20:56 UTC
- Message-ID
- <11575761821830-git-send-email-jnareb@gmail.com>
- In-Reply-To
- <11575480921132-git-send-email-jnareb@gmail.com>
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@gmail.com> --- 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