From: Felipe Contreras Date: Sat, 12 Oct 2013 07:04:44 GMT Subject: [PATCH try2 13/14] reset: allow --keep with --stage Message-ID: <1381561488-20294-11-git-send-email-felipe.contreras@gmail.com> In-Reply-To: <1381561488-20294-1-git-send-email-felipe.contreras@gmail.com> Signed-off-by: Felipe Contreras --- Documentation/git-reset.txt | 2 +- builtin/reset.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt index 5cd75a8..a1419c9 100644 --- a/Documentation/git-reset.txt +++ b/Documentation/git-reset.txt @@ -11,7 +11,7 @@ SYNOPSIS 'git reset' [-q] [] [--] ... 'git reset' (--patch | -p) [] [--] [...] 'git reset' [--soft | --mixed | --hard | --merge | --keep] [-q] [] -'git reset' [--stage | --work] [-q] [] +'git reset' [--stage | --work | --keep] [-q] [] DESCRIPTION ----------- diff --git a/builtin/reset.c b/builtin/reset.c index fbc1abc..dde03a7 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -23,7 +23,7 @@ static const char * const git_reset_usage[] = { N_("git reset [--mixed | --soft | --hard | --merge | --keep] [-q] []"), - N_("git reset [--stage | --work] [-q] []"), + N_("git reset [--stage | --work | --keep] [-q] []"), N_("git reset [-q] [--] ..."), N_("git reset --patch [] [--] [...]"), NULL @@ -295,8 +295,15 @@ int cmd_reset(int argc, const char **argv, const char *prefix) } if (stage >= 0 || working_tree >= 0) { - if (reset_type != NONE) + int keep = 0; + + if (reset_type == KEEP) { + if (working_tree == 1) + die(_("--keep is incompatible with --work")); + keep = 1; + } else if (reset_type != NONE) { die(_("--{stage,work} are incompatible with --{hard,mixed,soft,merge}")); + } if (working_tree == 1) { if (stage == 0) @@ -304,7 +311,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix) reset_type = HARD; } else { if (stage == 1) - reset_type = NONE; + reset_type = keep ? KEEP : NONE; else reset_type = SOFT; } -- 1.8.4-fc