git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFCv3 2/2] gitweb: links to patch action in commitdiff and shortlog view

From
Jakub Narebski <jnareb@gmail.com>
Date
Dec 6, 2008, 00:53 UTC
Message-ID
<200812060153.52947.jnareb@gmail.com>
In-Reply-To
<1228345188-15125-3-git-send-email-giuseppe.bilotta@gmail.com>
On Wed, 3 Dec 2008, Giuseppe Bilotta wrote:
Show 36 quoted lines
> In shortlog view, a link to the patchset is only offered when the number
> of commits shown is less than the allowed maximum number of patches.
> 
> Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
> ---
>  gitweb/gitweb.perl |   18 ++++++++++++++++++
>  1 files changed, 18 insertions(+), 0 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index c9abfcf..ec8fc7d 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -5083,6 +5083,11 @@ sub git_commit {
>  			} @$parents ) .
>  			')';
>  	}
> +	if (gitweb_check_feature('patches')) {
> +		$formats_nav .= " | " .
> +			$cgi->a({-href => href(action=>"patch", -replay=>1)},
> +				"patch");
> +	}
>  
>  	if (!defined $parent) {
>  		$parent = "--root";
> @@ -5415,6 +5420,11 @@ sub git_commitdiff {
>  		$formats_nav =
>  			$cgi->a({-href => href(action=>"commitdiff_plain", -replay=>1)},
>  			        "raw");
> +		if ($patch_max) {
> +			$formats_nav .= " | " .
> +				$cgi->a({-href => href(action=>"patch", -replay=>1)},
> +					"patch");
> +		}
>  
>  		if (defined $hash_parent &&
>  		    $hash_parent ne '-c' && $hash_parent ne '--cc') {

In the above two hunks 'patch' view functions as "git show --pretty=email" text/plain equivalent, but this duplicates a bit 'commitdiff_plain' functionality. Well, 'commitdiff_plain' has currently some errors, but...

Show 12 quoted lines
> @@ -5949,6 +5959,14 @@ sub git_shortlog {
>  			$cgi->a({-href => href(-replay=>1, page=>$page+1),
>  			         -accesskey => "n", -title => "Alt-n"}, "next");
>  	}
> +	my $patch_max = gitweb_check_feature('patches');
> +	if ($patch_max) {
> +		if ($patch_max < 0 || @commitlist <= $patch_max) {
> +			$paging_nav .= " &sdot; " .
> +				$cgi->a({-href => href(action=>"patch", -replay=>1)},
> +					@commitlist > 1 ? "patchset" : "patch");
> +		}
> +	}

Here 'patch' view functions as "git format-patch", able to be downloaded and fed to git-am. Perhaps the action should also be named 'patches' here?; it could lead to the same function.

By the way, there is subtle bug in above link. If shortlog view is less than $patch_max commits long, but it is because the history for a given branch (or starting from given commit) is so short, and not because there is cutoff $hash_parent set, the 'patchset' view wouldn't display plain text equivalent view, but only patch for top commit.

I assume that the link is only for 'shortlog' view, and not also for 'log' and 'history' views because 'shortlog' is the only log-like view which support $hash_parent?

Show 7 quoted lines
>  
>  	git_header_html();
>  	git_print_page_nav('shortlog','', $hash,$hash,$hash, $paging_nav);
> -- 
> 1.5.6.5
> 
> 
-- 
Jakub Narebski
Poland
Previous: Giuseppe BilottaNext: Giuseppe Bilotta
Message 4 of 20 in “[RFCv3 0/2] gitweb: patch view”
  1. Giuseppe BilottaDec 3, 2008
  2. 1/2 gitweb: add patch viewGiuseppe Bilotta, Dec 3, 2008
  3. 2/2 gitweb: links to patch action in commitdiff and shortlog viewGiuseppe Bilotta, Dec 3, 2008
  4. Jakub NarebskiDec 6, 2008
  5. Giuseppe BilottaDec 6, 2008
  6. Jakub NarebskiDec 6, 2008
  7. Junio C HamanoDec 3, 2008
  8. Giuseppe BilottaDec 4, 2008
  9. Junio C HamanoDec 4, 2008
  10. Jakub NarebskiDec 4, 2008
  11. Giuseppe BilottaDec 4, 2008
  12. Jakub NarebskiDec 6, 2008
  13. Junio C HamanoDec 6, 2008
  14. Jakub NarebskiDec 6, 2008
  15. Junio C HamanoDec 6, 2008
  16. Giuseppe BilottaDec 6, 2008
  17. Petr BaudisDec 6, 2008
  18. Giuseppe BilottaDec 6, 2008
  19. Jakub NarebskiDec 6, 2008
  20. Giuseppe BilottaDec 6, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.