-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* jc/branch-previous: Teach @{-1} to git merge Teach the "@{-1} syntax to "git branch"
- Loading branch information
Showing
4 changed files
with
94 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
#!/bin/sh | ||
|
||
test_description='previous branch syntax @{-n}' | ||
|
||
. ./test-lib.sh | ||
|
||
test_expect_success 'branch -d @{-1}' ' | ||
test_commit A && | ||
git checkout -b junk && | ||
git checkout - && | ||
test "$(git symbolic-ref HEAD)" = refs/heads/master && | ||
git branch -d @{-1} && | ||
test_must_fail git rev-parse --verify refs/heads/junk | ||
' | ||
|
||
test_expect_success 'branch -d @{-12} when there is not enough switches yet' ' | ||
git reflog expire --expire=now && | ||
git checkout -b junk2 && | ||
git checkout - && | ||
test "$(git symbolic-ref HEAD)" = refs/heads/master && | ||
test_must_fail git branch -d @{-12} && | ||
git rev-parse --verify refs/heads/master | ||
' | ||
|
||
test_expect_success 'merge @{-1}' ' | ||
git checkout A && | ||
test_commit B && | ||
git checkout A && | ||
test_commit C && | ||
git branch -f master B && | ||
git branch -f other && | ||
git checkout other && | ||
git checkout master && | ||
git merge @{-1} && | ||
git cat-file commit HEAD | grep "Merge branch '\''other'\''" | ||
' | ||
|
||
test_expect_success 'merge @{-1} when there is not enough switches yet' ' | ||
git reflog expire --expire=now && | ||
git checkout -f master && | ||
git reset --hard B && | ||
git branch -f other C && | ||
git checkout other && | ||
git checkout master && | ||
test_must_fail git merge @{-12} | ||
' | ||
|
||
test_done | ||
|