Browse Source
This works like ":/regex" syntax that finds a recently created commit starting from all refs, but limits the discovery to those reachable from the named commit. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Nguyễn Thái Ngọc Duy
14 years ago
committed by
Junio C Hamano
3 changed files with 105 additions and 11 deletions
@ -0,0 +1,73 @@
@@ -0,0 +1,73 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='tests for ref^{stuff}' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success 'setup' ' |
||||
echo blob >a-blob && |
||||
git tag -a -m blob blob-tag `git hash-object -w a-blob` |
||||
mkdir a-tree && |
||||
echo moreblobs >a-tree/another-blob && |
||||
git add . && |
||||
TREE_SHA1=`git write-tree` && |
||||
git tag -a -m tree tree-tag "$TREE_SHA1" && |
||||
git commit -m Initial && |
||||
git tag -a -m commit commit-tag && |
||||
git branch ref && |
||||
git checkout master && |
||||
echo modified >>a-blob && |
||||
git add -u && |
||||
git commit -m Modified |
||||
' |
||||
|
||||
test_expect_success 'ref^{non-existent}' ' |
||||
test_must_fail git rev-parse ref^{non-existent} |
||||
' |
||||
|
||||
test_expect_success 'ref^{}' ' |
||||
git rev-parse ref >expected && |
||||
git rev-parse ref^{} >actual && |
||||
test_cmp expected actual && |
||||
git rev-parse commit-tag^{} >actual && |
||||
test_cmp expected actual |
||||
' |
||||
|
||||
test_expect_success 'ref^{commit}' ' |
||||
git rev-parse ref >expected && |
||||
git rev-parse ref^{commit} >actual && |
||||
test_cmp expected actual && |
||||
git rev-parse commit-tag^{commit} >actual && |
||||
test_cmp expected actual && |
||||
test_must_fail git rev-parse tree-tag^{commit} && |
||||
test_must_fail git rev-parse blob-tag^{commit} |
||||
' |
||||
|
||||
test_expect_success 'ref^{tree}' ' |
||||
echo $TREE_SHA1 >expected && |
||||
git rev-parse ref^{tree} >actual && |
||||
test_cmp expected actual && |
||||
git rev-parse commit-tag^{tree} >actual && |
||||
test_cmp expected actual && |
||||
git rev-parse tree-tag^{tree} >actual && |
||||
test_cmp expected actual && |
||||
test_must_fail git rev-parse blob-tag^{tree} |
||||
' |
||||
|
||||
test_expect_success 'ref^{/.}' ' |
||||
git rev-parse master >expected && |
||||
git rev-parse master^{/.} >actual && |
||||
test_cmp expected actual |
||||
' |
||||
|
||||
test_expect_success 'ref^{/non-existent}' ' |
||||
test_must_fail git rev-parse master^{/non-existent} |
||||
' |
||||
|
||||
test_expect_success 'ref^{/Initial}' ' |
||||
git rev-parse ref >expected && |
||||
git rev-parse master^{/Initial} >actual && |
||||
test_cmp expected actual |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue