This just discards existing entries from the index, which can be useful if you are rewriting all entries with "--index-info" or similar. Signed-off-by: Jeff King <peff@xxxxxxxx> --- I tried to make something like: git update-index --from-scratch --index-info work by avoiding reading all entries in the first place. However, update-index actually processes its arguments sequentially, so we _must_ read the index before we start processing arguments. But because it's sequential, a "clear" operation makes sense, since you clear, then add new entries. Documentation/git-update-index.txt | 3 +++ builtin/update-index.c | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt index a3081f4..47f0ae6 100644 --- a/Documentation/git-update-index.txt +++ b/Documentation/git-update-index.txt @@ -71,6 +71,9 @@ OPTIONS --cacheinfo <mode> <object> <path>:: Directly insert the specified info into the index. +--clear:: + Discard all existing entries from the index. + --index-info:: Read index information from stdin. diff --git a/builtin/update-index.c b/builtin/update-index.c index a6a23fa..559dfae 100644 --- a/builtin/update-index.c +++ b/builtin/update-index.c @@ -645,6 +645,13 @@ static int cacheinfo_callback(struct parse_opt_ctx_t *ctx, return 0; } +static int clear_callback(const struct option *opt, + const char *arg, int unset) +{ + discard_cache(); + return 0; +} + static int stdin_cacheinfo_callback(struct parse_opt_ctx_t *ctx, const struct option *opt, int unset) { @@ -774,6 +781,9 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) "add entries from standard input to the index", PARSE_OPT_NONEG | PARSE_OPT_NOARG, (parse_opt_cb *) stdin_cacheinfo_callback}, + {OPTION_CALLBACK, 0, "clear", NULL, NULL, + "drop all index entries", PARSE_OPT_NONEG | PARSE_OPT_NOARG, + clear_callback}, {OPTION_LOWLEVEL_CALLBACK, 0, "unresolve", &has_errors, NULL, "repopulate stages #2 and #3 for the listed paths", PARSE_OPT_NONEG | PARSE_OPT_NOARG, -- 1.7.9.6.8.g992e5 -- 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