tvl-depot/third_party/git/t/t5610-clone-detached.sh
Vincent Ambo 7ef0d62730 merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5' as 'third_party/git'
2020-01-11 23:40:29 +00:00

76 lines
1.9 KiB
Bash
Executable file

#!/bin/sh
test_description='test cloning a repository with detached HEAD'
. ./test-lib.sh
head_is_detached() {
git --git-dir=$1/.git rev-parse --verify HEAD &&
test_must_fail git --git-dir=$1/.git symbolic-ref HEAD
}
test_expect_success 'setup' '
echo one >file &&
git add file &&
git commit -m one &&
echo two >file &&
git commit -a -m two &&
git tag two &&
echo three >file &&
git commit -a -m three
'
test_expect_success 'clone repo (detached HEAD points to branch)' '
git checkout master^0 &&
git clone "file://$PWD" detached-branch
'
test_expect_success 'cloned HEAD matches' '
echo three >expect &&
git --git-dir=detached-branch/.git log -1 --format=%s >actual &&
test_cmp expect actual
'
test_expect_failure 'cloned HEAD is detached' '
head_is_detached detached-branch
'
test_expect_success 'clone repo (detached HEAD points to tag)' '
git checkout two^0 &&
git clone "file://$PWD" detached-tag
'
test_expect_success 'cloned HEAD matches' '
echo two >expect &&
git --git-dir=detached-tag/.git log -1 --format=%s >actual &&
test_cmp expect actual
'
test_expect_success 'cloned HEAD is detached' '
head_is_detached detached-tag
'
test_expect_success 'clone repo (detached HEAD points to history)' '
git checkout two^ &&
git clone "file://$PWD" detached-history
'
test_expect_success 'cloned HEAD matches' '
echo one >expect &&
git --git-dir=detached-history/.git log -1 --format=%s >actual &&
test_cmp expect actual
'
test_expect_success 'cloned HEAD is detached' '
head_is_detached detached-history
'
test_expect_success 'clone repo (orphan detached HEAD)' '
git checkout master^0 &&
echo four >file &&
git commit -a -m four &&
git clone "file://$PWD" detached-orphan
'
test_expect_success 'cloned HEAD matches' '
echo four >expect &&
git --git-dir=detached-orphan/.git log -1 --format=%s >actual &&
test_cmp expect actual
'
test_expect_success 'cloned HEAD is detached' '
head_is_detached detached-orphan
'
test_done