Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
git-rm: honor -n flag.
author
Junio C Hamano
<junkio@cox.net>
Fri, 9 Jun 2006 04:11:25 +0000
(21:11 -0700)
committer
Junio C Hamano
<junkio@cox.net>
Fri, 9 Jun 2006 04:11:25 +0000
(21:11 -0700)
Even when invoked with -n flag, git-rm removed the matching
paths anyway. Also includes the missing check spotted by
SungHyun Nam, which caused it to segfault. Now we refuse to run
without any paths.
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-rm.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
2048bb0
)
diff --git
a/builtin-rm.c
b/builtin-rm.c
index ef2f8b5d099555c259a39985d8e765cf378e4431..4d56a1f07065e6e8ebaa95fdfe843cffb6283af3 100644
(file)
--- a/
builtin-rm.c
+++ b/
builtin-rm.c
@@
-83,15
+83,15
@@
int cmd_rm(int argc, const char **argv, char **envp)
}
die(builtin_rm_usage);
}
}
die(builtin_rm_usage);
}
- pathspec = get_pathspec(prefix, argv + i);
+ if (argc <= i)
+ usage(builtin_rm_usage);
+ pathspec = get_pathspec(prefix, argv + i);
seen = NULL;
seen = NULL;
- if (pathspec) {
- for (i = 0; pathspec[i] ; i++)
- /* nothing */;
- seen = xmalloc(i);
- memset(seen, 0, i);
- }
+ for (i = 0; pathspec[i] ; i++)
+ /* nothing */;
+ seen = xmalloc(i);
+ memset(seen, 0, i);
for (i = 0; i < active_nr; i++) {
struct cache_entry *ce = active_cache[i];
for (i = 0; i < active_nr; i++) {
struct cache_entry *ce = active_cache[i];
@@
-121,6
+121,9
@@
int cmd_rm(int argc, const char **argv, char **envp)
cache_tree_invalidate_path(active_cache_tree, path);
}
cache_tree_invalidate_path(active_cache_tree, path);
}
+ if (show_only)
+ return 0;
+
/*
* Then, if we used "-f", remove the filenames from the
* workspace. If we fail to remove the first one, we
/*
* Then, if we used "-f", remove the filenames from the
* workspace. If we fail to remove the first one, we