(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'magic pathspec tests using git-log'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<test_expect_success>} {(SQ <setup>)} 
      {
        (SQ <'\n'> <'\ttest_commit initial &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit --allow-empty -m empty &&\n'> <'\tmkdir sub\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'"git log :/" should not be ambiguous'>)} 
      {(SQ <'\n'> <'\tgit log :/\n'>)}
    )
    (C {<test_expect_success>} 
      {(SQ <'"git log :/a" should be ambiguous (applied both rev and worktree)'>)} 
      {
        (SQ <'\n'> <'\t: >a &&\n'> <'\ttest_must_fail git log :/a 2>error &&\n'> 
          <'\ttest_i18ngrep ambiguous error\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'"git log :/a -- " should not be ambiguous'>)} 
      {(SQ <'\n'> <'\tgit log :/a --\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'"git log -- :/a" should not be ambiguous'>)} 
      {(SQ <'\n'> <'\tgit log -- :/a\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'"git log :" should be ambiguous'>)} 
      {(SQ <'\n'> <'\ttest_must_fail git log : 2>error &&\n'> <'\ttest_i18ngrep ambiguous error\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'git log -- :'>)} {(SQ <'\n'> <'\tgit log -- :\n'>)})
    (C {<test_expect_success>} {(SQ <'git log HEAD -- :/'>)} 
      {
        (SQ <'\n'> <'\tcat >expected <<-EOF &&\n'> <'\t24b24cf initial\n'> <'\tEOF\n'> 
          <'\t(cd sub && git log --oneline HEAD -- :/ >../actual) &&\n'> <'\ttest_cmp expected actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'command line pathspec parsing for "git log"'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\t>a &&\n'> <'\tgit add a &&\n'> 
          <'\tgit commit -m "add an empty a" --allow-empty &&\n'> <'\techo 1 >a &&\n'> <'\tgit commit -a -m "update a to 1" &&\n'> <'\tgit checkout HEAD^ &&\n'> 
          <'\techo 2 >a &&\n'> <'\tgit commit -a -m "update a to 2" &&\n'> <'\ttest_must_fail git merge master &&\n'> 
          <'\tgit add a &&\n'> <'\tgit log --merge -- a\n'>
        )
      }
    )
    (C {<test_done>})
  ]
)