(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git svn authorship">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} {(SQ <"setup svn repository">)} 
      {
        (SQ <"\n"> <"\tsvn_cmd checkout \"$svnrepo\" work.svn &&\n"> <"\t(\n"> <"\t\tcd work.svn &&\n"> 
          <"\t\techo >file\n"> <"\t\tsvn_cmd add file\n"> <"\t\tsvn_cmd commit -m \"first commit\" file\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"interact with it via git svn">)} 
      {
        (SQ <"\n"> <"\tmkdir work.git &&\n"> <"\t(\n"> <"\t\tcd work.git &&\n"> 
          <"\t\tgit svn init \"$svnrepo\"\n"> <"\t\tgit svn fetch &&\n"> <"\n"> <"\t\techo modification >file &&\n"> <"\t\ttest_tick &&\n"> 
          <"\t\tgit commit -a -m second &&\n"> <"\n"> <"\t\ttest_tick &&\n"> <"\t\tgit svn dcommit &&\n"> <"\n"> 
          <"\t\techo \"further modification\" >file &&\n"> <"\t\ttest_tick &&\n"> <"\t\tgit commit -a -m third &&\n"> <"\n"> <"\t\ttest_tick &&\n"> 
          <"\t\tgit svn --add-author-from dcommit &&\n"> <"\n"> <"\t\techo \"yet further modification\" >file &&\n"> <"\t\ttest_tick &&\n"> 
          <"\t\tgit commit -a -m fourth &&\n"> <"\n"> <"\t\ttest_tick &&\n"> <"\t\tgit svn --add-author-from --use-log-author dcommit &&\n"> <"\n"> 
          <"\t\tgit log &&\n"> <"\n"> <"\t\tgit show -s HEAD^^ >../actual.2 &&\n"> <"\t\tgit show -s HEAD^  >../actual.3 &&\n"> 
          <"\t\tgit show -s HEAD   >../actual.4\n"> <"\n"> <"\t) &&\n"> <"\n"> <"\t# Make sure that --add-author-from without --use-log-author\n"> 
          <"\t# did not affect the authorship information\n"> <"\tmyself=$(grep \"^Author: \" actual.2) &&\n"> <"\tunaffected=$(grep \"^Author: \" actual.3) &&\n"> 
          <"\ttest \"z$myself\" = \"z$unaffected\" &&\n"> <"\n"> <"\t# Make sure lack of --add-author-from did not add cruft\n"> 
          <"\t! grep \"^    From: A U Thor \" actual.2 &&\n"> <"\n"> <"\t# Make sure --add-author-from added cruft\n"> 
          <"\tgrep \"^    From: A U Thor \" actual.3 &&\n"> <"\tgrep \"^    From: A U Thor \" actual.4 &&\n"> <"\n"> 
          <"\t# Make sure --add-author-from with --use-log-author affected\n"> <"\t# the authorship information\n"> <"\tgrep \"^Author: A U Thor \" actual.4 &&\n"> <"\n"> 
          <"\t# Make sure there are no commit messages with excess blank lines\n"> <"\ttest $(grep \"^ \" actual.2 | wc -l) = 3 &&\n"> 
          <"\ttest $(grep \"^ \" actual.3 | wc -l) = 5 &&\n"> <"\ttest $(grep \"^ \" actual.4 | wc -l) = 5 &&\n"> <"\n"> 
          <"\t# Make sure there are no svn commit messages with excess blank lines\n"> <"\t(\n"> <"\t\tcd work.svn &&\n"> <"\t\tsvn_cmd up &&\n"> <"\t\t\n"> 
          <"\t\ttest $(svn_cmd log -r2:2 | wc -l) = 5 &&\n"> <"\t\ttest $(svn_cmd log -r4:4 | wc -l) = 7\n"> <"\t)\n">
        )
      }
    )
    (C {(test_done)})
  ]
)