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

Re: "git shortlog -sn --follow -- <path>" counts all commits to entire repo

From
Jeff King <peff@peff.net>
Date
Sep 8, 2017, 07:49 UTC
Message-ID
<20170908074910.reoyb47navgsg6kt@sigill.intra.peff.net>
In-Reply-To
<xmqqo9qlzodi.fsf@gitster.mtv.corp.google.com>
On Fri, Sep 08, 2017 at 03:38:17PM +0900, Junio C Hamano wrote:
Show 8 quoted lines
> > I suspect a better solution might involve actually building on
> > log-tree.c to do the traversal (since this internal traversal is
> > supposed to be equivalent to "git log | git shortlog").
> 
> Probably.  That approach would also have an added benefit that when
> "--follow" is fixed to keep track of which path it is following per
> traversal for "git log", the result from "git shortlog --follow"
> would automatically become correct, I guess?

Yeah. It depends on exactly how such a fix is made. I think one improvement would be to actually bump --follow handling into the limit_list() stage, so that we properly handle history simplification over followed paths. In which case get_revision() would just never return the uninteresting commits, and the current shortlog code would Just Work.

That said, I don't think we can go wrong by making shortlog's traversal more like log's. Any changes we make to --follow will be aimed at and tested with git-log, so the more code they share the more likely it is that shortlog won't bitrot.

-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 8 in “"git shortlog -sn --follow -- <path>" counts all commits to entire repo”
  1. ВалентинSep 7, 2017
  2. Stefan BellerSep 7, 2017
  3. Jeff KingSep 8, 2017
  4. Junio C HamanoSep 8, 2017
  5. Jeff KingSep 8, 2017
  6. Junio C HamanoSep 8, 2017
  7. Jeff KingSep 9, 2017
  8. Junio C HamanoSep 10, 2017

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.