Browse Source

[PATCH] Explain what went wrong on update-cache of new file

If somebody tries to run `git update-cache foo', where foo is a new
file, git dies with a rather cryptic error message:

 fatal: Unable to add foo to database

This trivial patch makes git explain what probably went wrong.  It is
not a perfect diagnosis of all error paths, but for 90% of the cases it
should provide the user with the clue they need.

[jc: I ended up wording slightly differently, and fixed another
 confusing error message I noticed while reviewing the code.]

Signed-off-by: Amos Waterland <apw@rossby.metr.ou.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Amos Waterland 20 years ago committed by Junio C Hamano
parent
commit
89bc8c785e
  1. 8
      update-cache.c

8
update-cache.c

@ -53,7 +53,11 @@ static int add_file_to_cache(char *path) @@ -53,7 +53,11 @@ static int add_file_to_cache(char *path)
if (allow_remove)
return remove_file_from_cache(path);
}
return error("open(\"%s\"): %s", path, strerror(errno));
if (0 == status)
return error("%s: is a directory", path);
else
return error("lstat(\"%s\"): %s", path,
strerror(errno));
}
namelen = strlen(path);
size = cache_entry_size(namelen);
@ -393,7 +397,7 @@ int main(int argc, char **argv) @@ -393,7 +397,7 @@ int main(int argc, char **argv)
continue;
}
if (add_file_to_cache(path))
die("Unable to add %s to database", path);
die("Unable to add %s to database; maybe you want to use --add option?", path);
}
if (write_cache(newfd, active_cache, active_nr) ||
commit_index_file(&cache_file))

Loading…
Cancel
Save