diff options
Diffstat (limited to 't/t6004-rev-list-path-optim.sh')
-rwxr-xr-x | t/t6004-rev-list-path-optim.sh | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/t/t6004-rev-list-path-optim.sh b/t/t6004-rev-list-path-optim.sh index 5182dbb158..5dabf1c5e3 100755 --- a/t/t6004-rev-list-path-optim.sh +++ b/t/t6004-rev-list-path-optim.sh @@ -1,19 +1,51 @@ #!/bin/sh -test_description='git-rev-list trivial path optimization test' +test_description='git rev-list trivial path optimization test' . ./test-lib.sh test_expect_success setup ' echo Hello > a && git add a && -git commit -m "Initial commit" a +git commit -m "Initial commit" a && +initial=$(git rev-parse --verify HEAD) ' test_expect_success path-optimization ' - commit=$(echo "Unchanged tree" | git-commit-tree "HEAD^{tree}" -p HEAD) && - test $(git-rev-list $commit | wc -l) = 2 && - test $(git-rev-list $commit -- . | wc -l) = 1 + commit=$(echo "Unchanged tree" | git commit-tree "HEAD^{tree}" -p HEAD) && + test $(git rev-list $commit | wc -l) = 2 && + test $(git rev-list $commit -- . | wc -l) = 1 +' + +test_expect_success 'further setup' ' + git checkout -b side && + echo Irrelevant >c && + git add c && + git commit -m "Side makes an irrelevant commit" && + echo "More Irrelevancy" >c && + git add c && + git commit -m "Side makes another irrelevant commit" && + echo Bye >a && + git add a && + git commit -m "Side touches a" && + side=$(git rev-parse --verify HEAD) && + echo "Yet more Irrelevancy" >c && + git add c && + git commit -m "Side makes yet another irrelevant commit" && + git checkout master && + echo Another >b && + git add b && + git commit -m "Master touches b" && + git merge side && + echo Touched >b && + git add b && + git commit -m "Master touches b again" +' + +test_expect_success 'path optimization 2' ' + ( echo "$side"; echo "$initial" ) >expected && + git rev-list HEAD -- a >actual && + test_cmp expected actual ' test_done |