Subject: Re: [PATCH] gitweb: show no difference message

From: Jakub Narebski <[email-masked]>
Date: Mon, 26 Mar 2007 18:11:53 +0100

On Sun, Mar 25, 2007, Martin Koegler wrote:

> Currently, gitweb shows only header and footer, if no differences are
> found. This patch adds a "No differences are found" message for the html
> output.

This is a good idea, as it reduces confusion for first-time gitweb user,
who might not know what it means to have an empty diff page.

Currently we have only one place (I think) where gitweb can generate
link to "blobdiff", namely "diff to parent" link in "history" view
for plain file, when e.g. some change was (explicitely or accidentally)
reverted.

> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 5214050..fbadab4 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -2376,6 +2376,7 @@ sub git_patchset_body {
>  
>  	my $patch_idx = 0;
>  	my $patch_line;
> +	my $empty = 0;
>  	my $diffinfo;
>  	my (%from, %to);
>  
> @@ -2396,6 +2397,7 @@ sub git_patchset_body {
>  		# git diff header
>  		#assert($patch_line =~ m/^diff /) if DEBUG;
>  		#assert($patch_line !~ m!$/$!) if DEBUG; # is chomp-ed
> +		$empty++;
>  		push @diff_header, $patch_line;
>  
>  		# extended diff header
> @@ -2559,6 +2561,8 @@ sub git_patchset_body {
>  		print "</div>\n"; # class="patch"
>  	}
>  
> +	print "<div class=\"diff header\">No differences found</div>\n" if (!$empty);
> +
>  	print "</div>\n"; # class="patchset"
>  }
>  

A few nits.

First, programming style. You named the variable $empty, when it
evaluates to true when the patch is _not_ empty, i.e. when some
differences are found.

Second, HTML. I'm not so sure if this info belongs to _patchset_,
but if git-diff or git-diff-tree returns empty patch output,
then we do not generate 'patch' div. So I'm a bit for this
solution.

Third, CSS (style). I'm reluctant about using "diff header" for
styling "no differences found" div; it is used to style

	diff --git a/filename b/filename

header. I think that it would be better to add a separate CSS class,
e.g. "diff notfound", or "diff nochanges", or "diff nodifferences"
class for this message.

-- 
Jakub Narebski
Poland