This is take 4. The earlier rounds were $gmane/200165, 200387, and 200506. Compared to the previous round, it has more patches in the clean-up phase. Most notably, patch 03/18 gets rid of get_sha1_with_mode_1() and replaces the only external caller of it with a call to a more straightforward die_on_misspelt_object_name(). The test suite added by patch 12/18 has more patterns that we can potentially improve on. The disambiguation logic can now be asked to pick only committish, which can be used in places like "git commit -C deadbeef". It also knows that A and B in "git log A..B" can only be committishes. Adding support for treeish, if anybody is tempted to do so, should now be pretty straightforward. Junio C Hamano (18): sha1_name.c: indentation fix sha1_name.c: hide get_sha1_with_context_1() ugliness sha1_name.c: get rid of ugly 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 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 builtin/cat-file.c | 2 +- builtin/log.c | 3 + builtin/pack-objects.c | 2 +- cache.h | 18 +- commit.c | 2 +- revision.c | 38 ++-- revision.h | 5 +- setup.c | 8 +- sha1_name.c | 383 ++++++++++++++++++++++++------------ t/t1512-rev-parse-disambiguation.sh | 208 ++++++++++++++++++++ 10 files changed, 509 insertions(+), 160 deletions(-) create mode 100755 t/t1512-rev-parse-disambiguation.sh -- 1.7.11.1.212.g52fe12e -- 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