Jeff King <peff@xxxxxxxx> writes: > On Tue, Nov 23, 2010 at 03:20:58PM +0100, ÅtÄpÃn NÄmec wrote: > >> 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 -- 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