gitweb: Use --no-commit-id in git_commit and git_commitdiff
Quoted 6 lines · Jakub Narebski
Use --no-commit-id option to git-diff-tree command in
git_commitandgit_commitdiffto filter out commit ID output that git-diff-tree adds when called with only one <tree-ish> (not only for --stdin). Remove filtering commit IDs from git-diff-tree output.This option is in git since at least v1.0.0, so make use of it.
*BLUSH*
I think we would need something like this, if only for completeness.
-- >8 --
[PATCH] combine-diff: honour --no-commit-id
Somehow we forgot to look at no_commit_id flag in these codepaths.
--- combine-diff.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
combine-diff.c +3 -3
@@ -737,7 +737,7 @@ static void show_patch_diff(struct combiint added =0 ;int deleted =0 ; -if (rev->loginfo) +if (rev->loginfo && !rev->no_commit_id)show_log (rev, opt->msg_sep);dump_quoted_path (dense ?"diff --cc " :"diff --combined " , elem->path, c_meta, c_reset);
@@ -815,7 +815,7 @@ static void show_raw_diff(struct combineif (!line_termination) inter_name_termination =0 ; -if (rev->loginfo) +if (rev->loginfo && !rev->no_commit_id)show_log (rev, opt->msg_sep);if (opt->output_format &DIFF_FORMAT_RAW ) {
@@ -887,7 +887,7 @@ void diff_tree_combined(const unsigned c diffopts.output_format =DIFF_FORMAT_NO_OUTPUT ; diffopts.recursive =1 ; - show_log_first = !!rev->loginfo; + show_log_first = !!rev->loginfo && !rev->no_commit_id; needsep =0 ;/* find set of paths that everybody touches */ for (i =0 ; i < num_parent; i++) {
PATCH 1/1 gitweb: Use --no-commit-id in git_commit and git_commitdiff
Use --no-commit-id option to git-diff-tree command in git_commit and git_commitdiff to filter out commit ID output that git-diff-tree adds when called with only one <tree-ish> (not only for --stdin). Remove filtering commit IDs from git-diff-tree output.
This option is in git since at least v1.0.0, so make use of it.
--- gitweb/gitweb.perl | 11 ++++------- 1 files changed, 4 insertions(+), 7 deletions(-)
gitweb/gitweb.perl +4 -7
@@ -3133,14 +3133,12 @@ sub git_commit { if (!defined $parent) { $parent = "--root"; } - open my $fd, "-|", git_cmd(), "diff-tree", '-r', @diff_opts, $parent, $hash + open my $fd, "-|", git_cmd(), "diff-tree", '-r', "--no-commit-id", + @diff_opts, $parent, $hash or die_error(undef, "Open git-diff-tree failed"); my @difftree = map { chomp; $_ } <$fd>; close $fd or die_error(undef, "Reading git-diff-tree failed"); - # filter out commit ID output - @difftree = grep(!/^[0-9a-fA-F]{40}$/, @difftree); - # non-textual hash id's can be cached my $expires; if ($hash =~ m/^[0-9a-fA-F]{40}$/) {
@@ -3453,15 +3451,14 @@ sub git_commitdiff { my @difftree; if ($format eq 'html') { open $fd, "-|", git_cmd(), "diff-tree", '-r', @diff_opts, + "--no-commit-id", "--patch-with-raw", "--full-index", $hash_parent, $hash or die_error(undef, "Open git-diff-tree failed"); while (chomp(my $line = <$fd>)) { # empty line ends raw part of diff-tree output last unless $line; - # filter out commit ID output - push @difftree, $line - unless $line =~ m/^[0-9a-fA-F]{40}$/; + push @difftree, $line; } } elsif ($format eq 'plain') {
Signature · 1 line
1.4.3.3
Quoted 11 lines · Junio C Hamano
Quoted 6 lines · Jakub Narebski
Use --no-commit-id option to git-diff-tree command in
git_commitandgit_commitdiffto filter out commit ID output that git-diff-tree adds when called with only one <tree-ish> (not only for --stdin). Remove filtering commit IDs from git-diff-tree output.This option is in git since at least v1.0.0, so make use of it.
*BLUSH*
Quoted 8 lines
I think we would need something like this, if only for completeness.
-- >8 --
[PATCH] combine-diff: honour --no-commit-idSomehow we forgot to look at
no_commit_idflag in these codepaths.
It's good that I haven't started coding support for combined commitdiff in gitweb, as I would probably wonder why the code doesn't work ;-)
Signature · 1 line
Jakub Narebski