fsck: do not complain on detached HEAD.

Detached HEAD is just a normal state of a repository.  Do not
say anything about it.

Do not give worrying "error:" messages when we let the user know
that the HEAD points at nothing (i.e. yet to be born branch),
nor we do not have any default refs to start following the
objects chain.  Reword them as "notice:".

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 2007-04-11 01:28:43 -07:00
parent f981577202
commit 8eb2d0bee8
1 changed files with 15 additions and 7 deletions

View File

@ -532,7 +532,7 @@ static void get_default_heads(void)
* "show_unreachable" flag.
*/
if (!default_refs) {
error("No default references");
fprintf(stderr, "notice: No default references\n");
show_unreachable = 0;
}
}
@ -552,15 +552,23 @@ static int fsck_head_link(void)
{
unsigned char sha1[20];
int flag;
const char *head_points_at = resolve_ref("HEAD", sha1, 1, &flag);
int null_is_error = 0;
const char *head_points_at = resolve_ref("HEAD", sha1, 0, &flag);

if (!head_points_at || !(flag & REF_ISSYMREF))
return error("HEAD is not a symbolic ref");
if (prefixcmp(head_points_at, "refs/heads/"))
if (!head_points_at)
return error("Invalid HEAD");
if (!strcmp(head_points_at, "HEAD"))
/* detached HEAD */
null_is_error = 1;
else if (prefixcmp(head_points_at, "refs/heads/"))
return error("HEAD points to something strange (%s)",
head_points_at);
if (is_null_sha1(sha1))
return error("HEAD: not a valid git pointer");
if (is_null_sha1(sha1)) {
if (null_is_error)
return error("HEAD: detached HEAD points at nothing");
fprintf(stderr, "notice: HEAD points to an unborn branch (%s)\n",
head_points_at + 11);
}
return 0;
}