Skip to content

Commit

Permalink
git-rm: honor -n flag.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Junio C Hamano committed Jun 9, 2006
1 parent 2048bb0 commit 7612a1e
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions builtin-rm.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,15 +83,15 @@ int cmd_rm(int argc, const char **argv, char **envp)
}
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;
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];
Expand Down Expand Up @@ -121,6 +121,9 @@ int cmd_rm(int argc, const char **argv, char **envp)
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
Expand Down

0 comments on commit 7612a1e

Please sign in to comment.