]> git.ipfire.org Git - thirdparty/git.git/blame - t/t5610-clone-detached.sh
Merge branch 'ah/rebase-no-fork-point-config'
[thirdparty/git.git] / t / t5610-clone-detached.sh
CommitLineData
3b368546
JK
1#!/bin/sh
2
3test_description='test cloning a repository with detached HEAD'
95cf2c01 4GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
334afbc7
JS
5export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
6
3b368546
JK
7. ./test-lib.sh
8
9head_is_detached() {
10 git --git-dir=$1/.git rev-parse --verify HEAD &&
11 test_must_fail git --git-dir=$1/.git symbolic-ref HEAD
12}
13
14test_expect_success 'setup' '
15 echo one >file &&
16 git add file &&
17 git commit -m one &&
18 echo two >file &&
19 git commit -a -m two &&
20 git tag two &&
21 echo three >file &&
22 git commit -a -m three
23'
24
25test_expect_success 'clone repo (detached HEAD points to branch)' '
95cf2c01 26 git checkout main^0 &&
3b368546
JK
27 git clone "file://$PWD" detached-branch
28'
29test_expect_success 'cloned HEAD matches' '
30 echo three >expect &&
31 git --git-dir=detached-branch/.git log -1 --format=%s >actual &&
32 test_cmp expect actual
33'
34test_expect_failure 'cloned HEAD is detached' '
35 head_is_detached detached-branch
36'
37
38test_expect_success 'clone repo (detached HEAD points to tag)' '
39 git checkout two^0 &&
40 git clone "file://$PWD" detached-tag
41'
42test_expect_success 'cloned HEAD matches' '
43 echo two >expect &&
44 git --git-dir=detached-tag/.git log -1 --format=%s >actual &&
45 test_cmp expect actual
46'
61adfd30 47test_expect_success 'cloned HEAD is detached' '
3b368546
JK
48 head_is_detached detached-tag
49'
50
51test_expect_success 'clone repo (detached HEAD points to history)' '
52 git checkout two^ &&
53 git clone "file://$PWD" detached-history
54'
55test_expect_success 'cloned HEAD matches' '
56 echo one >expect &&
57 git --git-dir=detached-history/.git log -1 --format=%s >actual &&
58 test_cmp expect actual
59'
60test_expect_success 'cloned HEAD is detached' '
61 head_is_detached detached-history
62'
63
c1921c18 64test_expect_success 'clone repo (orphan detached HEAD)' '
95cf2c01 65 git checkout main^0 &&
3b368546
JK
66 echo four >file &&
67 git commit -a -m four &&
68 git clone "file://$PWD" detached-orphan
69'
c1921c18 70test_expect_success 'cloned HEAD matches' '
3b368546
JK
71 echo four >expect &&
72 git --git-dir=detached-orphan/.git log -1 --format=%s >actual &&
73 test_cmp expect actual
74'
c1921c18 75test_expect_success 'cloned HEAD is detached' '
3b368546
JK
76 head_is_detached detached-orphan
77'
78
79test_done