--- builtin-add.c | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff --git a/builtin-add.c b/builtin-add.c index 581a2a1..1ed95d5 100644 --- a/builtin-add.c +++ b/builtin-add.c @@ -212,6 +212,7 @@ static const char ignore_error[] = static int verbose = 0, show_only = 0, ignored_too = 0, refresh_only = 0; static int ignore_add_errors, addremove, intent_to_add; +static const char *file_id; static struct option builtin_add_options[] = { OPT__DRY_RUN(&show_only), @@ -226,6 +227,7 @@ static struct option builtin_add_options[] = { OPT_BOOLEAN('A', "all", &addremove, "add all, noticing removal of tracked files"), OPT_BOOLEAN( 0 , "refresh", &refresh_only, "don't add, only refresh the index"), OPT_BOOLEAN( 0 , "ignore-errors", &ignore_add_errors, "just skip files which cannot be added because of errors"), + OPT_STRING('d', "id", &file_id, "FILE_ID", "file id"), OPT_END(), }; @@ -268,27 +270,34 @@ int cmd_add(int argc, const char **argv, const char *prefix) int flags; int add_new_files; int require_pathspec; + char **new_argv; git_config(add_config, NULL); argc = parse_options(argc, argv, prefix, builtin_add_options, builtin_add_usage, PARSE_OPT_KEEP_ARGV0); + + if (file_id) + new_argv = (char **) expand_file_ids(file_id, &argc, (char **) argv); + else + new_argv = (char **) argv; + if (patch_interactive) add_interactive = 1; if (add_interactive) - exit(interactive_add(argc - 1, argv + 1, prefix)); + exit(interactive_add(argc - 1, (const char **) (new_argv + 1), prefix)); if (edit_interactive) - return(edit_patch(argc, argv, prefix)); + return(edit_patch(argc, (const char **) new_argv, prefix)); argc--; - argv++; + new_argv++; if (addremove && take_worktree_changes) die("-A and -u are mutually incompatible"); if ((addremove || take_worktree_changes) && !argc) { static const char *here[2] = { ".", NULL }; argc = 1; - argv = here; + new_argv = (char **) here; } add_new_files = !take_worktree_changes && !refresh_only; @@ -308,7 +317,7 @@ int cmd_add(int argc, const char **argv, const char *prefix) fprintf(stderr, "Maybe you wanted to say 'git add .'?\n"); return 0; } - pathspec = validate_pathspec(argc, argv, prefix); + pathspec = validate_pathspec(argc, (const char **) new_argv, prefix); if (read_cache() < 0) die("index file corrupt"); -- 1.6.4.13.ge6580 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html