Signed-off-by: Felipe Contreras <[email protected]>
---
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] [<tree-ish>] [--] <paths>...
'git reset' (--patch | -p) [<tree-ish>] [--] [<paths>...]
'git reset' [--soft | --mixed | --hard | --merge | --keep] [-q] [<commit>]
-'git reset' [--stage | --work] [-q] [<commit>]
+'git reset' [--stage | --work | --keep] [-q] [<commit>]
DESCRIPTION
-----------
diff --git a/builtin/reset.c b/builtin/reset.c
index c40987e..8d6d9a1 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]
[<commit>]"),
- N_("git reset [--stage | --work] [-q] [<commit>]"),
+ N_("git reset [--stage | --work | --keep] [-q] [<commit>]"),
N_("git reset [-q] <tree-ish> [--] <paths>..."),
N_("git reset --patch [<tree-ish>] [--] [<paths>...]"),
NULL
@@ -306,8 +306,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)
@@ -315,7 +322,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.9.2+fc1.2.gfbaae8c
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html