Teach reset the same shorthand as checkout and merge. "-" means the
"previous commit".
Signed-off-by: Sudhanshu Shekhar <redacted>
---
builtin/reset.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/builtin/reset.c b/builtin/reset.c
index 4c08ddc..9f8967d 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -192,6 +192,7 @@ static void parse_args(struct pathspec *pathspec,
{
const char *rev = "HEAD";
unsigned char unused[20];
+ int substituted_minus = 0;
/*
* Possible arguments are:
*@@ -205,6 +206,10 @@ static void parse_args(struct pathspec *pathspec,
*/
if (argv[0]) {
+ if(!strcmp(argv[0], "-")) {
+ argv[0] = "@{-1}";
+ substituted_minus = 1;
+ }
if (!strcmp(argv[0], "--")) {
argv++; /* reset to HEAD, possibly with paths */
} else if (argv[1] && !strcmp(argv[1], "--")) {@@ -225,12 +230,14 @@ static void parse_args(struct pathspec *pathspec,
verify_non_filename(prefix, argv[0]);
rev = *argv++;
} else {
+ /* We were treating "-" as a commit and not a file */
+ if(substituted_minus)
+ argv[0] = "-";
/* Otherwise we treat this as a filename */
verify_filename(prefix, argv[0], 1);
}
}
*rev_ret = rev;
-
if (read_cache() < 0)
die(_("index file corrupt"));
--
2.3.1.168.gfd4bc34.dirty