From: Junio C Hamano Date: Fri, 14 Oct 2011 02:03:19 +0000 (-0700) Subject: Merge branch 'di/fast-import-empty-tag-note-fix' X-Git-Tag: v1.7.8-rc0~87 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/c13975e7fd19a6939de264233eed20f93c6d1f46?ds=inline;hp=-c Merge branch 'di/fast-import-empty-tag-note-fix' * di/fast-import-empty-tag-note-fix: fast-import: don't allow to note on empty branch fast-import: don't allow to tag empty branch --- c13975e7fd19a6939de264233eed20f93c6d1f46 diff --combined fast-import.c index f9347f55ba,a8a3ad1124..8d8ea3c45c --- a/fast-import.c +++ b/fast-import.c @@@ -722,8 -722,13 +722,8 @@@ static struct branch *new_branch(const if (b) die("Invalid attempt to create duplicate branch: %s", name); - switch (check_ref_format(name)) { - case 0: break; /* its valid */ - case CHECK_REF_FORMAT_ONELEVEL: - break; /* valid, but too few '/', allow anyway */ - default: + if (check_refname_format(name, REFNAME_ALLOW_ONELEVEL)) die("Branch name doesn't conform to GIT standards: %s", name); - } b = pool_calloc(1, sizeof(struct branch)); b->name = pool_strdup(name); @@@ -2411,6 -2416,8 +2411,8 @@@ static void note_change_n(struct branc /* */ s = lookup_branch(p); if (s) { + if (is_null_sha1(s->sha1)) + die("Can't add a note on empty branch."); hashcpy(commit_sha1, s->sha1); } else if (*p == ':') { uintmax_t commit_mark = strtoumax(p + 1, NULL, 10); @@@ -2712,6 -2719,8 +2714,8 @@@ static void parse_new_tag(void from = strchr(command_buf.buf, ' ') + 1; s = lookup_branch(from); if (s) { + if (is_null_sha1(s->sha1)) + die("Can't tag an empty branch."); hashcpy(sha1, s->sha1); type = OBJ_COMMIT; } else if (*from == ':') {