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

[PATCH v2 0/6] describe --contains / name-rev --weight

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 30, 2012, 03:50 UTC
Message-ID
<1346298629-13730-1-git-send-email-gitster@pobox.com>

Greg KH noticed that the commit 0136db586c that was merged to the mainline back in v3.5-rc1 days was merged again as part of a different branch to the mainline before v3.6-rc1.

"git describe --contains" gives the commit a name based on the newer v3.6-rc1 tag, which was surprising.

This is because "describe --contains" calls "name-rev", which tries to use the tag that minimizes the steps between the tag and the commit being named. The branch merged recently to the mainline did not have as much work done on top of the commit as the old branch that was merged earlier, and "name-rev" chose to use the newer tag to base the name on.

The new "--weight" option introduced by this series tells it to use the oldest tag that contains the commit being named instead. This matches what people expect from "describe --contains" better.

Junio C Hamano (6):
  name-rev: lose unnecessary typedef
  name_rev: clarify the logic to assign a new tip-name to a commit
  name-rev: --weight option
  name-rev --weight: cache the computed weight in notes
  name-rev --weight: tests and documentation
  describe --contains: use "name-rev --weight"
 Documentation/git-name-rev.txt |  14 ++-
 builtin/describe.c             |   3 +-
 builtin/name-rev.c             | 195 ++++++++++++++++++++++++++++++++++++-----
 t/t6039-name-rev.sh            |  62 +++++++++++++
 4 files changed, 248 insertions(+), 26 deletions(-)
 create mode 100755 t/t6039-name-rev.sh
-- 
1.7.12.286.g9df01f7
Next: Junio C Hamano
Message 1 of 8 in “describe --contains / name-rev --weight”
  1. 0/6 describe --contains / name-rev --weightJunio C Hamano, Aug 30, 2012
  2. 1/6 name-rev: lose unnecessary typedefJunio C Hamano, Aug 30, 2012
  3. 2/6 name_rev: clarify the logic to assign a new tip-name to a commitJunio C Hamano, Aug 30, 2012
  4. 3/6 name-rev: --weight optionJunio C Hamano, Aug 30, 2012
  5. 5/6 name-rev --weight: trivial optimizationJunio C Hamano, Sep 4, 2012
  6. 4/6 name-rev --weight: cache the computed weight in notesJunio C Hamano, Aug 30, 2012
  7. 5/6 name-rev --weight: tests and documentationJunio C Hamano, Aug 30, 2012
  8. 6/6 describe --contains: use "name-rev --weight"Junio C Hamano, Aug 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.