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

[PATCH v5 00/25] Extending the shelf-life of "git describe" output

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 3, 2012, 21:36 UTC
Message-ID
<1341351435-31011-1-git-send-email-gitster@pobox.com>

This is take 5. The earlier rounds were $gmane/200165, 200387, 200506 and 200869.

Except that the typo advise function is now called "maybe_die_on_misspelt_object_name()", per discussion with Matthieu, the early part of the series up to "restructure disambiguation" (Patch #9) is the same as before.

I thought the thinking behind the fix to a minor regression pointed out by Peff deserves to be kept as a separate commit, so it appears as such as Patch #10.

Patches #20-#24 are new. The test script added in Patch #13 includes the tests for these new features, all start as "expect-failure", and these flip them to "expect-success" as they implement them.

The last one #25 adds a new option to rev-parse to let you enumerate objects that would match if you give too short an abbreviation. It would independently help the issue in "blame" output that did not attempt to make the commit object names unique, reported in $gmane/200839.

Junio C Hamano (25):
  sha1_name.c: indentation fix
  sha1_name.c: hide get_sha1_with_context_1() ugliness
  sha1_name.c: get rid of get_sha1_with_mode_1()
  sha1_name.c: get rid of get_sha1_with_mode()
  sha1_name.c: clarify what "fake" is for in find_short_object_filename()
  sha1_name.c: rename "now" to "current"
  sha1_name.c: refactor find_short_packed_object()
  sha1_name.c: correct misnamed "canonical" and "res"
  sha1_name.c: restructure disambiguation of short names
  get_sha1(): fix error status regression
  sha1_name.c: allow get_short_sha1() to take other flags
  sha1_name.c: teach get_short_sha1() a commit-only option
  sha1_name.c: get_describe_name() by definition groks only commits
  sha1_name.c: get_sha1_1() takes lookup flags
  sha1_name.c: many short names can only be committish
  sha1_name.c: teach lookup context to get_sha1_with_context()
  sha1_name.c: introduce get_sha1_committish()
  revision.c: allow handle_revision_arg() to take other flags
  revision.c: the "log" family, except for "show", takes committish
  sha1_name.c: add support for disambiguating other types
  apply: --build-fake-ancestor expects blobs
  commit-tree: the command wants a tree and commits
  reset: the command takes committish
  rev-parse: A and B in "rev-parse A..B" refer to committish
  rev-parse --disambiguate=<prefix>
 Documentation/git-rev-parse.txt     |   6 +
 builtin/apply.c                     |   2 +-
 builtin/cat-file.c                  |   2 +-
 builtin/commit-tree.c               |   8 +-
 builtin/log.c                       |   3 +
 builtin/pack-objects.c              |   2 +-
 builtin/reset.c                     |  10 +-
 builtin/rev-parse.c                 |  14 +-
 cache.h                             |  28 +-
 commit.c                            |   2 +-
 revision.c                          |  38 +--
 revision.h                          |   5 +-
 setup.c                             |   8 +-
 sha1_name.c                         | 494 ++++++++++++++++++++++++++----------
 t/t1512-rev-parse-disambiguation.sh | 263 +++++++++++++++++++
 15 files changed, 713 insertions(+), 172 deletions(-)
 create mode 100755 t/t1512-rev-parse-disambiguation.sh
-- 
1.7.11.1.229.g706c98f
Next: Junio C Hamano
Message 1 of 26 in “Extending the shelf-life of "git describe" output”
  1. 00/25 Extending the shelf-life of "git describe" outputJunio C Hamano, Jul 3, 2012
  2. 01/25 sha1_name.c: indentation fixJunio C Hamano, Jul 3, 2012
  3. 02/25 sha1_name.c: hide get_sha1_with_context_1() uglinessJunio C Hamano, Jul 3, 2012
  4. 03/25 sha1_name.c: get rid of get_sha1_with_mode_1()Junio C Hamano, Jul 3, 2012
  5. 04/25 sha1_name.c: get rid of get_sha1_with_mode()Junio C Hamano, Jul 3, 2012
  6. 05/25 sha1_name.c: clarify what "fake" is for in find_short_object_filename()Junio C Hamano, Jul 3, 2012
  7. 06/25 sha1_name.c: rename "now" to "current"Junio C Hamano, Jul 3, 2012
  8. 07/25 sha1_name.c: refactor find_short_packed_object()Junio C Hamano, Jul 3, 2012
  9. 08/25 sha1_name.c: correct misnamed "canonical" and "res"Junio C Hamano, Jul 3, 2012
  10. 09/25 sha1_name.c: restructure disambiguation of short namesJunio C Hamano, Jul 3, 2012
  11. 10/25 get_sha1(): fix error status regressionJunio C Hamano, Jul 3, 2012
  12. 11/25 sha1_name.c: allow get_short_sha1() to take other flagsJunio C Hamano, Jul 3, 2012
  13. 12/25 sha1_name.c: teach get_short_sha1() a commit-only optionJunio C Hamano, Jul 3, 2012
  14. 13/25 sha1_name.c: get_describe_name() by definition groks only commitsJunio C Hamano, Jul 3, 2012
  15. 14/25 sha1_name.c: get_sha1_1() takes lookup flagsJunio C Hamano, Jul 3, 2012
  16. 15/25 sha1_name.c: many short names can only be committishJunio C Hamano, Jul 3, 2012
  17. 16/25 sha1_name.c: teach lookup context to get_sha1_with_context()Junio C Hamano, Jul 3, 2012
  18. 17/25 sha1_name.c: introduce get_sha1_committish()Junio C Hamano, Jul 3, 2012
  19. 18/25 revision.c: allow handle_revision_arg() to take other flagsJunio C Hamano, Jul 3, 2012
  20. 19/25 revision.c: the "log" family, except for "show", takes committishJunio C Hamano, Jul 3, 2012
  21. 20/25 sha1_name.c: add support for disambiguating other typesJunio C Hamano, Jul 3, 2012
  22. 21/25 apply: --build-fake-ancestor expects blobsJunio C Hamano, Jul 3, 2012
  23. 22/25 commit-tree: the command wants a tree and commitsJunio C Hamano, Jul 3, 2012
  24. 23/25 reset: the command takes committishJunio C Hamano, Jul 3, 2012
  25. 24/25 rev-parse: A and B in "rev-parse A..B" refer to committishJunio C Hamano, Jul 3, 2012
  26. 25/25 rev-parse --disambiguate=<prefix>Junio C Hamano, Jul 3, 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.