Signed-off-by: Nguyán ThÃi Ngác Duy <pclouds@xxxxxxxxx> --- sha1_name.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/sha1_name.c b/sha1_name.c index 2c3a5fb..c298285 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -690,7 +690,9 @@ static int handle_one_ref(const char *path, return 0; } -static int get_sha1_oneline(const char *prefix, unsigned char *sha1) +static int get_sha1_oneline(const char *prefix, + unsigned char *sha1, + struct commit_list *original_list) { struct commit_list *list = NULL, *backup = NULL, *l; int retval = -1; @@ -706,7 +708,12 @@ static int get_sha1_oneline(const char *prefix, unsigned char *sha1) if (regcomp(®ex, prefix, REG_EXTENDED)) die("Invalid search pattern: %s", prefix); - for_each_ref(handle_one_ref, &list); + for (l = original_list; l; l = l->next) { + commit_list_insert(l->item, &list); + l->item->object.flags |= ONELINE_SEEN; + } + if (!list) + for_each_ref(handle_one_ref, &list); for (l = list; l; l = l->next) commit_list_insert(l->item, &backup); while (list) { @@ -1090,7 +1097,7 @@ int get_sha1_with_context_1(const char *name, unsigned char *sha1, int pos; if (namelen > 2 && name[1] == '/') /* don't need mode for commit */ - return get_sha1_oneline(name + 2, sha1); + return get_sha1_oneline(name + 2, sha1, NULL); if (namelen < 3 || name[2] != ':' || name[1] < '0' || '3' < name[1]) -- 1.7.3.3.476.g893a9 -- 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