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

Re: [RFCv4 2/3] gitweb: add patches view

From
Jakub Narebski <jnareb@gmail.com>
Date
Dec 16, 2008, 03:14 UTC
Message-ID
<200812160414.56486.jnareb@gmail.com>
In-Reply-To
<1228575755-13432-3-git-send-email-giuseppe.bilotta@gmail.com>
On Sat, 6 Dec 2008 16:02, Giuseppe Bilotta wrote:
> The only difference between patch and patches view is in the treatement
> of single commits: the former only displays a single patch, whereas the
> latter displays a patchset leading to the specified commit.

I like that fact that we have "patches" action which intent is to show series of patches, and "patch" action which intent is to show single patch. I'm just not sure if "patch" view should not simply ignore $hash_parent...

Signoff?
Show 23 quoted lines
> ---
>  gitweb/gitweb.perl |   20 ++++++++++++++++++--
>  1 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 71d5af4..dfc7128 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -525,6 +525,7 @@ our %actions = (
>  	"history" => \&git_history,
>  	"log" => \&git_log,
>  	"patch" => \&git_patch,
> +	"patches" => \&git_patches,
>  	"rss" => \&git_rss,
>  	"atom" => \&git_atom,
>  	"search" => \&git_search,
> @@ -5408,6 +5409,9 @@ sub git_blobdiff_plain {
>  
>  sub git_commitdiff {
>  	my $format = shift || 'html';
> +	# for patch view: should we limit ourselves to a single patch
> +	# if only a single commit is passed?
> +	my $single_patch = shift && 1;

What does this "shift && 1" does? Equivalent of "!!shift"? Is it really needed?

Perhaps it would be better to use %opts trick, like for some other gitweb subroutines (-single=>1, or -single_patch=>1, or -nmax=>1)? Or perhaps not...

Show 17 quoted lines
>  
>  	my $patch_max;
>  	if ($format eq 'patch') {
> @@ -5524,7 +5528,15 @@ sub git_commitdiff {
>  			}
>  			push @commit_spec, '-n', "$hash_parent..$hash";
>  		} else {
> -			push @commit_spec, '-1', '--root', $hash;
> +			if ($single_patch) {
> +				push @commit_spec, '-1';
> +			} else {
> +				if ($patch_max > 0) {
> +					push @commit_spec, "-$patch_max";
> +				}
> +				push @commit_spec, "-n";
> +			}
> +			push @commit_spec, '--root', $hash;
Nice.
Show 13 quoted lines
>  		}
>  		open $fd, "-|", git_cmd(), "format-patch", '--encoding=utf8',
>  			'--stdout', @commit_spec
> @@ -5620,7 +5632,11 @@ sub git_commitdiff_plain {
>  
>  # format-patch-style patches
>  sub git_patch {
> -	git_commitdiff('patch');
> +	git_commitdiff('patch', 1);
> +}
> +
> +sub git_patches {
> +	git_commitdiff('patch', 0);
I quite like it.
Show 7 quoted lines
>  }
>  
>  sub git_history {
> -- 
> 1.5.6.5
> 
> 
-- 
Jakub Narebski
Poland
Previous: Jakub NarebskiNext: Jakub Narebski
Message 6 of 12 in “[RFCv4 0/3] gitweb: patch view”
  1. Giuseppe BilottaDec 6, 2008
  2. 1/3 gitweb: add patch viewGiuseppe Bilotta, Dec 6, 2008
  3. 2/3 gitweb: add patches viewGiuseppe Bilotta, Dec 6, 2008
  4. 3/3 gitweb: link to patch(es) view from commit and log viewsGiuseppe Bilotta, Dec 6, 2008
  5. Jakub NarebskiDec 16, 2008
  6. Jakub NarebskiDec 16, 2008
  7. Jakub NarebskiDec 15, 2008
  8. Giuseppe BilottaDec 15, 2008
  9. Jakub NarebskiDec 15, 2008
  10. Jakub NarebskiDec 16, 2008
  11. Giuseppe BilottaDec 16, 2008
  12. Jakub NarebskiDec 16, 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.