All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sudhanshu Shekhar <sudshekhar02@gmail.com>
To: sunshine@sunshineco.com
Cc: git@vger.kernel.org, gitster@pobox.com, davvid@gmail.com,
	Matthieu.Moy@grenoble-inp.fr,
	Sudhanshu Shekhar <sudshekhar02@gmail.com>
Subject: [PATCH v3 1/2] reset: enable '-' short-hand for previous branch
Date: Wed, 11 Mar 2015 03:33:26 +0530	[thread overview]
Message-ID: <1426025006-18669-1-git-send-email-sudshekhar02@gmail.com> (raw)
In-Reply-To: <CAPig+cSU7X=1Ket8bAXU2JivaSVWw7C_M9ttAhJ_gQur3utsUA@mail.gmail.com>

git reset -' will reset to the previous branch. It will behave similar
to @{-1} except when a file named '@{-1}' is present. To refer to a file
named '-', use ./- or the -- flag.

Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Helped-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Sudhanshu Shekhar <sudshekhar02@gmail.com>
---
Eric, I have added a user_input variable to record the input entered by the user. This way I can avoid the multiple 'if' clauses. Thank you for the suggestion.
I have also removed the unrelated change that I had unintentionally committed. I am sending this patch on the thread for further review. Once both the patches are reviewed and accepted, I will create a new mail for it. Hope that is okay.

Regards,
Sudhanshu

 builtin/reset.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/builtin/reset.c b/builtin/reset.c
index 4c08ddc..b428241 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -192,6 +192,8 @@ static void parse_args(struct pathspec *pathspec,
 {
 	const char *rev = "HEAD";
 	unsigned char unused[20];
+	int substituted_minus = 0;
+	char *user_input = argv[0];
 	/*
 	 * Possible arguments are:
 	 *
@@ -205,6 +207,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], "--")) {
@@ -222,9 +228,12 @@ static void parse_args(struct pathspec *pathspec,
 			 * Ok, argv[0] looks like a commit/tree; it should not
 			 * be a filename.
 			 */
-			verify_non_filename(prefix, argv[0]);
+			verify_non_filename(prefix, user_input);
 			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);
 		}
-- 
2.3.1.278.ge5c7b1f.dirty

  reply	other threads:[~2015-03-10 22:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-10 10:52 [PATCH v3 1/2] reset: enable '-' short-hand for previous branch Sudhanshu Shekhar
2015-03-10 10:52 ` [PATCH v3 2/2] Added tests for reset - Sudhanshu Shekhar
2015-03-10 13:26   ` Matthieu Moy
2015-03-10 17:52     ` Sudhanshu Shekhar
2015-03-10 18:05       ` Eric Sunshine
2015-03-10 18:29   ` Eric Sunshine
2015-03-10 22:03     ` Sudhanshu Shekhar [this message]
2015-03-13 10:11       ` [PATCH v3 1/2] reset: enable '-' short-hand for previous branch Eric Sunshine
2015-03-10 22:10     ` [PATCH v3 2/2] t7102: add 'reset -' tests Sudhanshu Shekhar
2015-03-13 10:27       ` Eric Sunshine
2015-03-10 13:17 ` [PATCH v3 1/2] reset: enable '-' short-hand for previous branch Matthieu Moy
2015-03-10 19:18 ` Eric Sunshine
2015-03-10 22:12   ` Sudhanshu Shekhar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1426025006-18669-1-git-send-email-sudshekhar02@gmail.com \
    --to=sudshekhar02@gmail.com \
    --cc=Matthieu.Moy@grenoble-inp.fr \
    --cc=davvid@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.