Avoid using non-portable `echo -n` in tests.
[gitweb.git] / builtin-rm.c
index 50ae6d54011fad89387f0d56ce7a4591d07874f3..b7126e3e25d4f52ae8c4a120d524a24c11129785 100644 (file)
@@ -79,7 +79,8 @@ static int check_local_mod(unsigned char *head, int index_only)
                     || hashcmp(ce->sha1, sha1))
                        staged_changes = 1;
 
-               if (local_changes && staged_changes)
+               if (local_changes && staged_changes &&
+                   !(index_only && is_empty_blob_sha1(ce->sha1)))
                        errs = error("'%s' has staged content different "
                                     "from both the file and the HEAD\n"
                                     "(use -f to force removal)", name);
@@ -137,6 +138,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
 
        if (read_cache() < 0)
                die("index file corrupt");
+       refresh_cache(REFRESH_QUIET);
 
        pathspec = get_pathspec(prefix, argv);
        seen = NULL;