Git fork
at reftables-rust 64 lines 965 B view raw
1#!/bin/sh 2 3test_description='test @{-N} syntax' 4 5GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main 6export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME 7 8. ./test-lib.sh 9 10 11make_commit () { 12 echo "$1" > "$1" && 13 git add "$1" && 14 git commit -m "$1" 15} 16 17 18test_expect_success 'setup' ' 19 20 make_commit 1 && 21 git branch side && 22 make_commit 2 && 23 make_commit 3 && 24 git checkout side && 25 make_commit 4 && 26 git merge main && 27 git checkout main 28 29' 30 31# 1 -- 2 -- 3 main 32# \ \ 33# \ \ 34# --- 4 --- 5 side 35# 36# and 'side' should be the last branch 37 38test_expect_success '@{-1} works' ' 39 test_cmp_rev side @{-1} 40' 41 42test_expect_success '@{-1}~2 works' ' 43 test_cmp_rev side~2 @{-1}~2 44' 45 46test_expect_success '@{-1}^2 works' ' 47 test_cmp_rev side^2 @{-1}^2 48' 49 50test_expect_success '@{-1}@{1} works' ' 51 test_cmp_rev side@{1} @{-1}@{1} 52' 53 54test_expect_success '@{-2} works' ' 55 test_cmp_rev main @{-2} 56' 57 58test_expect_success '@{-3} fails' ' 59 test_must_fail git rev-parse @{-3} 60' 61 62test_done 63 64