[PATCH] Explain what went wrong on update-cache of new file
authorAmos Waterland <apw@rossby.metr.ou.edu>
Thu, 1 Sep 2005 14:13:50 +0000 (09:13 -0500)
committerJunio C Hamano <junkio@cox.net>
Fri, 2 Sep 2005 04:45:00 +0000 (21:45 -0700)
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>
update-cache.c

index 63815ed..3d1fd2b 100644 (file)
@@ -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)
                        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))