From 5d2c3b01604a170c52262bf2751c55053d6bd8c1 Mon Sep 17 00:00:00 2001 From: Johannes Sixt Date: Tue, 1 Mar 2011 14:21:05 +0100 Subject: [PATCH] rerere forget: deprecate invocation without pathspec rerere forget is a destructive command. When invoked without a path, it operates on the current directory, potentially deleting many recorded conflict resolutions. To make the command safer, a path must be specified as of git 1.8.0. Until then, give users time to write 'git rerere forget .' if they really mean the entire current directory. Signed-off-by: Johannes Sixt Signed-off-by: Junio C Hamano --- Documentation/git-rerere.txt | 4 ++-- builtin/rerere.c | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Documentation/git-rerere.txt b/Documentation/git-rerere.txt index db99d4786e..484fdd5be7 100644 --- a/Documentation/git-rerere.txt +++ b/Documentation/git-rerere.txt @@ -7,7 +7,7 @@ git-rerere - Reuse recorded resolution of conflicted merges SYNOPSIS -------- -'git rerere' ['clear'|'forget' []|'diff'|'status'|'gc'] +'git rerere' ['clear'|'forget' |'diff'|'status'|'gc'] DESCRIPTION ----------- @@ -43,7 +43,7 @@ will automatically invoke this command. 'forget' :: This resets the conflict resolutions which rerere has recorded for the current -conflict in . The is optional. +conflict in . 'diff':: diff --git a/builtin/rerere.c b/builtin/rerere.c index 67cbfeb152..82358855d1 100644 --- a/builtin/rerere.c +++ b/builtin/rerere.c @@ -8,7 +8,7 @@ #include "xdiff-interface.h" static const char * const rerere_usage[] = { - "git rerere [clear | status | remaining | diff | gc]", + "git rerere [clear | forget path... | status | remaining | diff | gc]", NULL, }; @@ -136,7 +136,10 @@ int cmd_rerere(int argc, const char **argv, const char *prefix) return rerere(flags); if (!strcmp(argv[0], "forget")) { - const char **pathspec = get_pathspec(prefix, argv + 1); + const char **pathspec; + if (argc < 2) + warning("'git rerere forget' without paths is deprecated"); + pathspec = get_pathspec(prefix, argv + 1); return rerere_forget(pathspec); } -- 2.11.4.GIT