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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html