[PATCH 5/6] Teach --id to "git rm"
---
builtin-rm.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/builtin-rm.c b/builtin-rm.c
index 57975db..d2982a0 100644
--- a/builtin-rm.c
+++ b/builtin-rm.c
@@ -137,6 +137,7 @@ static struct lock_file lock_file;
static int show_only = 0, force = 0, index_only = 0, recursive = 0, quiet = 0;
static int ignore_unmatch = 0;
+static const char *file_id;
static struct option builtin_rm_options[] = {
OPT__DRY_RUN(&show_only),
@@ -146,6 +147,7 @@ static struct option builtin_rm_options[] = {
OPT_BOOLEAN('r', NULL, &recursive, "allow recursive removal"),
OPT_BOOLEAN( 0 , "ignore-unmatch", &ignore_unmatch,
"exit with a zero status even if nothing matched"),
+ OPT_STRING('d', "id", &file_id, "FILE_ID", "file id"),
OPT_END(),
};
@@ -154,11 +156,18 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
int i, newfd;
const char **pathspec;
char *seen;
+ char **new_argv;
git_config(git_default_config, NULL);
argc = parse_options(argc, argv, prefix, builtin_rm_options,
builtin_rm_usage, 0);
+
+ if (file_id)
+ new_argv = (char **) expand_file_ids(file_id, &argc, (char **) argv);
+ else
+ new_argv = (char **) argv;
+
if (!argc)
usage_with_options(builtin_rm_usage, builtin_rm_options);
@@ -171,7 +180,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
die("index file corrupt");
refresh_cache(REFRESH_QUIET);
- pathspec = get_pathspec(prefix, argv);
+ pathspec = get_pathspec(prefix, (const char **) new_argv);
seen = NULL;
for (i = 0; pathspec[i] ; i++)
/* nothing */;
--
1.6.4.13.ge6580