summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c0ce981)
raw | patch | inline | side by side (parent: c0ce981)
author | Jeff King <peff@peff.net> | |
Mon, 26 Mar 2007 18:55:39 +0000 (14:55 -0400) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Tue, 27 Mar 2007 19:43:39 +0000 (12:43 -0700) |
Given this set of commands:
$ echo "newly added file" >new
$ git add new
$ git rm new
the file "new" was previously removed from the working
directory and the index. Because it was not in HEAD, it is
available only by searching for unreachable objects.
Instead, we now err on the safe side and refuse to remove
a file which is not referenced by HEAD.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
$ echo "newly added file" >new
$ git add new
$ git rm new
the file "new" was previously removed from the working
directory and the index. Because it was not in HEAD, it is
available only by searching for unreachable objects.
Instead, we now err on the safe side and refuse to remove
a file which is not referenced by HEAD.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-rm.c | patch | blob | history |
diff --git a/builtin-rm.c b/builtin-rm.c
index 00dbe399609051647f393e0c543a862a0ba432c8..bf42003a7e79f96bf4964b116ddd3ee79350e682 100644 (file)
--- a/builtin-rm.c
+++ b/builtin-rm.c
if (ce_match_stat(ce, &st, 0))
errs = error("'%s' has local modifications "
"(hint: try -f)", ce->name);
- if (no_head)
- continue;
- /*
- * It is Ok to remove a newly added path, as long as
- * it is cache-clean.
- */
- if (get_tree_entry(head, name, sha1, &mode))
- continue;
- /*
- * Otherwise make sure the version from the HEAD
- * matches the index.
- */
- if (ce->ce_mode != create_ce_mode(mode) ||
- hashcmp(ce->sha1, sha1))
+ if (no_head
+ || get_tree_entry(head, name, sha1, &mode)
+ || ce->ce_mode != create_ce_mode(mode)
+ || hashcmp(ce->sha1, sha1))
errs = error("'%s' has changes staged in the index "
"(hint: try -f)", name);
}