This is take 2. The first round was $gmane/200165. A major difference from v1 is the [PATCH 6/9]. The earlier approach was to filter out candidates that match the given prefix for additional criteria as they are found in the loop, but this round tries to optimize for the common case of not having ambiguities. We postpone running additional test until we find the second object that match the prefix (in other words, if there is only one object that has the prefix, we do not apply the "we know this name refers to a commit" hint, and let the caller deal with a non commit object, just like the current code does). Junio C Hamano (9): sha1_name.c: indentation fix 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 | 282 +++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 182 insertions(+), 100 deletions(-) -- 1.7.11.2.gd284367 -- 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