Add support for using the "-" shortcut to delete the last checked-out branch. This functionality already exists for git-merge, git-checkout, and git-revert. Signed-off-by: Aaron Greenberg <p@xxxxxxxxxxxxxxxxxxx> --- builtin/branch.c | 3 +++ t/t3200-branch.sh | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/builtin/branch.c b/builtin/branch.c index 6d0cea9..9e37078 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -221,6 +221,9 @@ static int delete_branches(int argc, const char **argv, int force, int kinds, char *target = NULL; int flags = 0; + if (!strcmp(argv[i], "-")) + argv[i] = "@{-1}"; + strbuf_branchname(&bname, argv[i], allowed_interpret); free(name); name = mkpathdup(fmt, bname.buf); diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index 6c0b7ea..a3ffd54 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -776,6 +776,15 @@ test_expect_success 'deleting currently checked out branch fails' ' test_must_fail git branch -d my7 ' +test_expect_success 'test deleting last branch' ' + git checkout -b my7.2 && + git checkout - && + sha1=$(git rev-parse my7 | cut -c 1-7) && + echo "Deleted branch my7.2 (was $sha1)." >expect && + git branch -d - >actual 2>&1 && + test_i18ncmp expect actual +' + test_expect_success 'test --track without .fetch entries' ' git branch --track my8 && test "$(git config branch.my8.remote)" && -- 2.7.4