3 test_description='test cloning a repository with detached HEAD'
 
   7         git --git-dir=$1/.git rev-parse --verify HEAD &&
 
   8         test_must_fail git --git-dir=$1/.git symbolic-ref HEAD
 
  11 test_expect_success 'setup' '
 
  16         git commit -a -m two &&
 
  19         git commit -a -m three
 
  22 test_expect_success 'clone repo (detached HEAD points to branch)' '
 
  23         git checkout master^0 &&
 
  24         git clone "file://$PWD" detached-branch
 
  26 test_expect_success 'cloned HEAD matches' '
 
  28         git --git-dir=detached-branch/.git log -1 --format=%s >actual &&
 
  29         test_cmp expect actual
 
  31 test_expect_failure 'cloned HEAD is detached' '
 
  32         head_is_detached detached-branch
 
  35 test_expect_success 'clone repo (detached HEAD points to tag)' '
 
  37         git clone "file://$PWD" detached-tag
 
  39 test_expect_success 'cloned HEAD matches' '
 
  41         git --git-dir=detached-tag/.git log -1 --format=%s >actual &&
 
  42         test_cmp expect actual
 
  44 test_expect_success 'cloned HEAD is detached' '
 
  45         head_is_detached detached-tag
 
  48 test_expect_success 'clone repo (detached HEAD points to history)' '
 
  50         git clone "file://$PWD" detached-history
 
  52 test_expect_success 'cloned HEAD matches' '
 
  54         git --git-dir=detached-history/.git log -1 --format=%s >actual &&
 
  55         test_cmp expect actual
 
  57 test_expect_success 'cloned HEAD is detached' '
 
  58         head_is_detached detached-history
 
  61 test_expect_success 'clone repo (orphan detached HEAD)' '
 
  62         git checkout master^0 &&
 
  64         git commit -a -m four &&
 
  65         git clone "file://$PWD" detached-orphan
 
  67 test_expect_success 'cloned HEAD matches' '
 
  69         git --git-dir=detached-orphan/.git log -1 --format=%s >actual &&
 
  70         test_cmp expect actual
 
  72 test_expect_success 'cloned HEAD is detached' '
 
  73         head_is_detached detached-orphan