Ghanshyam Thakkar <shyamthakkar001@xxxxxxxxx> writes: > add-patch.c | 8 ------- > builtin/checkout.c | 4 +++- > builtin/reset.c | 4 +++- > t/t2016-checkout-patch.sh | 46 +++++++++++++++++++++----------------- > t/t2020-checkout-detach.sh | 12 ++++++++++ > t/t2071-restore-patch.sh | 18 +++++++++------ > t/t7105-reset-patch.sh | 15 ++++++++----- > 7 files changed, 64 insertions(+), 43 deletions(-) > > diff --git a/add-patch.c b/add-patch.c > index 79eda168eb..68f525b35c 100644 > --- a/add-patch.c > +++ b/add-patch.c > @@ -1729,14 +1729,6 @@ int run_add_p(struct repository *r, enum add_p_mode mode, > if (mode == ADD_P_STASH) > s.mode = &patch_mode_stash; > else if (mode == ADD_P_RESET) { > - /* > - * NEEDSWORK: Instead of comparing to the literal "HEAD", > - * compare the commit objects instead so that other ways of > - * saying the same thing (such as "@") are also handled > - * appropriately. > - * > - * This applies to the cases below too. > - */ > if (!revision || !strcmp(revision, "HEAD")) > s.mode = &patch_mode_reset_head; > else > diff --git a/builtin/checkout.c b/builtin/checkout.c > index a6e30931b5..067c251933 100644 > --- a/builtin/checkout.c > +++ b/builtin/checkout.c > @@ -1224,7 +1224,9 @@ static void setup_new_branch_info_and_source_tree( > struct tree **source_tree = &opts->source_tree; > struct object_id branch_rev; > > - new_branch_info->name = xstrdup(arg); > + /* treat '@' as a shortcut for 'HEAD' */ > + new_branch_info->name = !strcmp(arg, "@") ? xstrdup("HEAD") : > + xstrdup(arg); > setup_branch_path(new_branch_info); > > if (!check_refname_format(new_branch_info->path, 0) && > diff --git a/builtin/reset.c b/builtin/reset.c > index 8390bfe4c4..f0bf29a478 100644 > --- a/builtin/reset.c > +++ b/builtin/reset.c > @@ -281,7 +281,9 @@ static void parse_args(struct pathspec *pathspec, > verify_filename(prefix, argv[0], 1); > } > } > - *rev_ret = rev; > + > + /* treat '@' as a shortcut for 'HEAD' */ > + *rev_ret = !strcmp("@", rev) ? "HEAD" : rev; > > parse_pathspec(pathspec, 0, > PATHSPEC_PREFER_FULL | Nice. Things have become so much simpler, without having to touch millions of strcmp() with "HEAD" everywhere in the code paths. Will queue. Thanks.