| #!/bin/sh |
| |
| test_description='test various @{X} syntax combinations together' |
| . ./test-lib.sh |
| |
| check() { |
| test_expect_${3:-success} "$1 = $2" " |
| echo '$2' >expect && |
| git log -1 --format=%s '$1' >actual && |
| test_cmp expect actual |
| " |
| } |
| nonsense() { |
| test_expect_${2:-success} "$1 is nonsensical" " |
| test_must_fail git log -1 '$1' |
| " |
| } |
| fail() { |
| "$@" failure |
| } |
| |
| test_expect_success 'setup' ' |
| test_commit master-one && |
| test_commit master-two && |
| git checkout -b upstream-branch && |
| test_commit upstream-one && |
| test_commit upstream-two && |
| git checkout -b old-branch && |
| test_commit old-one && |
| test_commit old-two && |
| git checkout -b new-branch && |
| test_commit new-one && |
| test_commit new-two && |
| git config branch.old-branch.remote . && |
| git config branch.old-branch.merge refs/heads/master && |
| git config branch.new-branch.remote . && |
| git config branch.new-branch.merge refs/heads/upstream-branch |
| ' |
| |
| check HEAD new-two |
| check "@{1}" new-one |
| check "@{-1}" old-two |
| check "@{-1}@{1}" old-one |
| check "@{u}" upstream-two |
| check "@{u}@{1}" upstream-one |
| check "@{-1}@{u}" master-two |
| check "@{-1}@{u}@{1}" master-one |
| nonsense "@{u}@{-1}" |
| nonsense "@{1}@{u}" |
| |
| test_done |