From: Junio C Hamano Date: Sat, 4 Sep 2010 05:24:29 +0000 (-0700) Subject: Merge branch 'js/maint-reflog-beyond-horizon' X-Git-Tag: v1.7.3-rc0~4 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/306d7e5556f45c7405190b8b170e7ceefc88b9fa?ds=inline;hp=-c Merge branch 'js/maint-reflog-beyond-horizon' * js/maint-reflog-beyond-horizon: t1503: fix broken test_must_fail calls rev-parse: tests git rev-parse --verify master@{n}, for various n sha1_name.c: use warning in preference to fprintf(stderr rev-parse: exit with non-zero status if ref@{n} is not valid. --- 306d7e5556f45c7405190b8b170e7ceefc88b9fa diff --combined sha1_name.c index 4af94fa598,13209dc5b8..7b7e61719f --- a/sha1_name.c +++ b/sha1_name.c @@@ -342,7 -342,7 +342,7 @@@ static int get_sha1_1(const char *name static int get_sha1_basic(const char *str, int len, unsigned char *sha1) { - static const char *warning = "warning: refname '%.*s' is ambiguous.\n"; + static const char *warn_msg = "refname '%.*s' is ambiguous."; char *real_ref = NULL; int refs_found = 0; int at, reflog_len; @@@ -390,7 -390,7 +390,7 @@@ return -1; if (warn_ambiguous_refs && refs_found > 1) - fprintf(stderr, warning, len, str); + warning(warn_msg, len, str); if (reflog_len) { int nth, i; @@@ -426,14 -426,14 +426,14 @@@ if (read_ref_at(real_ref, at_time, nth, sha1, NULL, &co_time, &co_tz, &co_cnt)) { if (at_time) - fprintf(stderr, - "warning: Log for '%.*s' only goes " - "back to %s.\n", len, str, + warning("Log for '%.*s' only goes " + "back to %s.", len, str, show_date(co_time, co_tz, DATE_RFC2822)); - else - fprintf(stderr, - "warning: Log for '%.*s' only has " - "%d entries.\n", len, str, co_cnt); + else { + free(real_ref); + die("Log for '%.*s' only has %d entries.", + len, str, co_cnt); + } } } @@@ -659,16 -659,6 +659,16 @@@ static int get_sha1_1(const char *name return get_short_sha1(name, len, sha1, 0); } +/* + * This interprets names like ':/Initial revision of "git"' by searching + * through history and returning the first commit whose message starts + * the given regular expression. + * + * For future extension, ':/!' is reserved. If you want to match a message + * beginning with a '!', you have to repeat the exclamation mark. + */ +#define ONELINE_SEEN (1u<<20) + static int handle_one_ref(const char *path, const unsigned char *sha1, int flag, void *cb_data) { @@@ -684,10 -674,19 +684,10 @@@ if (object->type != OBJ_COMMIT) return 0; insert_by_date((struct commit *)object, list); + object->flags |= ONELINE_SEEN; return 0; } -/* - * This interprets names like ':/Initial revision of "git"' by searching - * through history and returning the first commit whose message matches - * the given regular expression. - * - * For future extension, ':/!' is reserved. If you want to match a message - * beginning with a '!', you have to repeat the exclamation mark. - */ - -#define ONELINE_SEEN (1u<<20) static int get_sha1_oneline(const char *prefix, unsigned char *sha1) { struct commit_list *list = NULL, *backup = NULL, *l;