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

Re: [PATCH 3/3] name-rev: --weight option (WIP)

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 30, 2012, 15:59 UTC
Message-ID
<7vfw74tlon.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7vharlujaq.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 9 quoted lines
> Jeff King <peff@peff.net> writes:
>
>> I wonder if you can
>> define the weight as a recursive function of the parents.
>
> I do not think we can.  A merge Z between X (that has N commits
> behind it) and Y (that has M commits behind it) has at most N+M+1
> commits behind it (counting itself), but we cannot tell how many
> among these N and M are shared.

You can theoretically take all the merge bases between X and Y, magically come up with the "weight" of a fictitious merge across these merge bases, and subtract that number from N+M to arrive at the weight of Z, I suppose, but it is not clear what an efficient implementation of that "magically" part looks like. I think that is where we stopped when we tried to optimize the "rev-list --bisect" node weighting logic; it punts handling the merges, and only optimizes single strand of pearls on top of a merge with a known weight.

Previous: Junio C HamanoNext: Jeff King
Message 15 of 19 in “Funny 'git describe --contains' output”
  1. Greg KHAug 29, 2012
  2. Junio C HamanoAug 29, 2012
  3. Junio C HamanoAug 29, 2012
  4. Greg KHAug 29, 2012
  5. 0/3 "git name-rev --weight"Junio C Hamano, Aug 29, 2012
  6. 1/3 name-rev: lose unnecessary typedefJunio C Hamano, Aug 29, 2012
  7. 2/3 name_rev: clarify when a new tip-name is assigned to a commitJunio C Hamano, Aug 29, 2012
  8. 3/3 name-rev: --weight option (WIP)Junio C Hamano, Aug 29, 2012
  9. Junio C HamanoAug 29, 2012
  10. Jeff KingAug 30, 2012
  11. Junio C HamanoAug 30, 2012
  12. Jeff KingAug 30, 2012
  13. Junio C HamanoAug 30, 2012
  14. Junio C HamanoAug 30, 2012
  15. Junio C HamanoAug 30, 2012
  16. Jeff KingAug 30, 2012
  17. Junio C HamanoAug 30, 2012
  18. Philip OakleyAug 30, 2012
  19. Junio C HamanoAug 30, 2012

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.