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

Re: [PATCH] gitweb: Provide RSS feeds for file history

From
Jakub Narebski <jnareb@gmail.com>
Date
Aug 3, 2007, 09:10 UTC
Message-ID
<200708031110.55969.jnareb@gmail.com>
In-Reply-To
<20070803020555.GB8593@dervierte>
Steven Walter wrote:
Nak. Explanation below. Corrected patch will follow.
> If git_feed is provided a file name, it ought to show only the history
> affecting that file.  The title was already being set correctly, but all
> commits from history were being shown anyway.

This is a bug introduced while changing gitweb (among others git_feed subroutine) to use parse_commits, in commit b6093a5c. Earlier it worked. So the explanation (in commit message) is not full.

By the way it affects not only RSS but also Atom feeds.
Documentation/SubmittingPatches:
  Checklist (and a short version for the impatient):
        Commits:
  [...]
        - if you want your work included in git.git, add a
          "Signed-off-by: Your Name <your@email.com>" line to the
          commit message (or just use the option "-s" when
          committing) to confirm that you agree to the Developer's
          Certificate of Origin
Show 16 quoted lines
> ---
>  gitweb/gitweb.perl |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 498b936..26932a4 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -611,6 +611,7 @@ sub href(%) {
>  	my %mapping = @mapping;
>  
>  	$params{'project'} = $project unless exists $params{'project'};
> +	$params{'file_name'} = $file_name unless exists $params{'file_name'};
>  
>  	my ($use_pathinfo) = gitweb_check_feature('pathinfo');
>  	if ($use_pathinfo) {

This is a big, intrusive change. It makes 'file_name' default argument, unless overriden. While it made sense for 'project' parameter, as almost all URLs in gitweb needed it, more than half URLs does not need 'file_name' parameter. And some of those URLs are present in a views which do use 'file_name'.

If you wanted alternative URLs for a feed preserve 'file_name' parameter, do it explicitely.

Show 9 quoted lines
> @@ -5365,7 +5366,7 @@ sub git_feed {
>  
>  	# log/feed of current (HEAD) branch, log of given branch, history of file/directory
>  	my $head = $hash || 'HEAD';
> -	my @commitlist = parse_commits($head, 150);
> +	my @commitlist = parse_commits($head, 150, 0, "--full-history", $file_name);
>  
>  	my %latest_commit;
>  	my %latest_date;

I'd rather not use "--full-history" for feeds. We use it in the 'history' view for backward compatibility reasons; I'd rather leave it for extra options in the feed.

-- 
Jakub Narebski
Poland
Previous: Steven WalterNext: Jakub Narebski
Message 2 of 5 in “gitweb: Provide RSS feeds for file history”
  1. gitweb: Provide RSS feeds for file historySteven Walter, Aug 3, 2007
  2. Jakub NarebskiAug 3, 2007
  3. gitweb: Fix handling of $file_name in feed generationJakub Narebski, Aug 3, 2007
  4. Junio C HamanoAug 4, 2007
  5. Robert FitzsimonsAug 4, 2007

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.