Jeff King [off-list ref] writes:
On Tue, Nov 23, 2010 at 03:20:58PM +0100, Štěpán Němec wrote:
quoted
diff --git a/builtin/reset.c b/builtin/reset.c
index 0037be4..fc530d2 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -309,7 +309,8 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
if (patch_mode) {
if (reset_type != NONE)
- die("--patch is incompatible with --{hard,mixed,soft}");
+ die("--patch is incompatible with --{hard,mixed,soft}\n"
+ "(use \"git checkout -p\" to selectively discard changes in working directory)");
return interactive_reset(rev, argv + i, prefix);
}
Should this actually print something different for --hard versus --mixed
versus --soft?
For --soft, "-p" simply makes no sense as you are not changing the index
or the working directory.
For --mixed, shouldn't we support "-p" already, as that is the default
mode?
For --hard, suggesting "checkout -p" does make sense.
Also, what about "--merge" and "--keep" modes?
All good questions, most of which occured to me, too. What I was going
to do based on the outcome of (the discussion of) this patch was at
least fix the currently out-of-date "--{hard,mixed,soft}", as the
error is signalled with the newer options (--keep and --merge) as well.
I'm not sure I could cope with anything much more complicated than that,
esp. if it involved adding some new reset functionality. :-)
What about this instead:
diff --git a/builtin/reset.c b/builtin/reset.c
index 0037be4..7779302 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -308,8 +308,11 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
hashcpy(sha1, commit->object.sha1);
if (patch_mode) {
- if (reset_type != NONE)
- die("--patch is incompatible with --{hard,mixed,soft}");
+ if (reset_type == HARD)
+ die("--patch is incompatible with --hard\n"
+ "(use \"git checkout -p\" to selectively discard changes in working directory)");
+ if (reset_type != MIXED)
+ die("--patch is incompatible with --{hard,soft,keep,merge}");
return interactive_reset(rev, argv + i, prefix);
}
Thanks,
Štěpán