(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'check svn dumpfile importer' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: reinit_git body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [(C {(test_declared_prereq)} {(PIPE)})] negated: T ) ] action: [ (command.Simple words: [{(echo)} {(DQ ('reinit_git: need to declare PIPE prerequisite'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:37) fd: -1 arg_word: {(4)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:45) arg_word: {(127)} ) ] spids: [23 32] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(rm)} {(-fr)} {(.git)}) (C {(rm)} {(-f)} {(stream)} {(backflow)}) (C {(git)} {(init)}) (C {(mkfifo)} {(stream)} {(backflow)}) ] ) ] ) ) (command.ShFunction name: try_dump body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:input) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [97] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:maybe_fail_svnfe) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Number val:2 span_id:105) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(test_) ($ Id.VSub_Number '$2')} ) ) } spids: [103] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:maybe_fail_fi) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Number val:3 span_id:116) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(test_) ($ Id.VSub_Number '$3')} ) ) } spids: [114] ) ] ) (command.BraceGroup children: [ (command.Sentence child: (command.Simple words: [ {($ Id.VSub_DollarName '$maybe_fail_svnfe')} {(test-svn-fe)} {(DQ ($ Id.VSub_DollarName '$input'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:137) fd: -1 arg_word: {(stream)} ) (redir.Redir op: (Token id:Id.Redir_Less val:'3<' span_id:140) fd: 3 arg_word: {(backflow)} ) ] ) terminator: (Token id:Id.Op_Amp val:'&' span_id:143) ) ] ) (command.Simple words: [ {($ Id.VSub_DollarName '$maybe_fail_fi')} {(git)} {(fast-import)} {(--cat-blob-fd) (Id.Lit_Equals '=') (3)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:161) fd: -1 arg_word: {(stream)} ) (redir.Redir op: (Token id:Id.Redir_Great val:'3>' span_id:164) fd: 3 arg_word: {(backflow)} ) ] ) (C {(wait)} {($ Id.VSub_Bang '$!')}) ] ) ] ) ) (command.ShFunction name: properties body: (command.BraceGroup children: [ (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:185) cond: [(C {(test)} {(DQ ($ Id.VSub_Pound '$#'))} {(-ne)} {(0)})] body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:property) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [201] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:value) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [209] ) ] ) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} { (DQ ('K ') (braced_var_sub token: (Token id:Id.VSub_Name val:property span_id:229) prefix_op: (Id.VSub_Pound) ) ) } ) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} {(DQ ($ Id.VSub_DollarName '$property'))} ) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} { (DQ ('V ') (braced_var_sub token: (Token id:Id.VSub_Name val:value span_id:263) prefix_op: (Id.VSub_Pound) ) ) } ) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} {(DQ ($ Id.VSub_DollarName '$value'))} ) (C {(shift)} {(2)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:292) arg_word: {(1)} ) ] ) ] ) ) ] ) ) (command.ShFunction name: text_no_props body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:text) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1') ('\n'))} spids: [310] ) ] ) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} {(DQ ('Prop-content-length: 10'))}) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} { (DQ ('Text-content-length: ') (braced_var_sub token: (Token id:Id.VSub_Name val:text span_id:346) prefix_op: (Id.VSub_Pound) ) ) } ) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} { (DQ ('Content-length: ') (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id:Id.VSub_Name val:text span_id:366) prefix_op: (Id.VSub_Pound) ) } ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)}) ) ) ) } ) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} {(DQ )} {(DQ (PROPS-END))}) (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} {(DQ ($ Id.VSub_DollarName '$text'))}) ] ) ] ) ) (command.Simple redirects: [ (redir.Redir op:(Token id:Id.Redir_Great val:'>' span_id:412) fd:-1 arg_word:{(empty)}) ] ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'empty dump' span_id:421))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:425) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:426) (Token id:Id.Lit_Chars val:'\techo "SVN-fs-dump-format-version: 2" >input &&\n' span_id:427) (Token id:Id.Lit_Chars val:'\ttry_dump input\n' span_id:428) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'v4 dumps not supported' span_id:437))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:441) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:442) (Token id:Id.Lit_Chars val:'\techo "SVN-fs-dump-format-version: 4" >v4.dump &&\n' span_id:443) (Token id:Id.Lit_Chars val:'\ttry_dump v4.dump must_fail\n' span_id:444) ) } ) (C {(test_expect_failure)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'empty revision' span_id:453))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:457) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:458) (Token id: Id.Lit_Chars val: '\tprintf "rev <nobody, nobody@local>: %s\\n" "" "" >expect &&\n' span_id: 459 ) (Token id:Id.Lit_Chars val:'\tcat >emptyrev.dump <<-\\EOF &&\n' span_id:460) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:461) (Token id:Id.Lit_Chars val:'\n' span_id:462) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:463) (Token id:Id.Lit_Chars val:'\tProp-content-length: 0\n' span_id:464) (Token id:Id.Lit_Chars val:'\tContent-length: 0\n' span_id:465) (Token id:Id.Lit_Chars val:'\n' span_id:466) (Token id:Id.Lit_Chars val:'\tRevision-number: 2\n' span_id:467) (Token id:Id.Lit_Chars val:'\tProp-content-length: 0\n' span_id:468) (Token id:Id.Lit_Chars val:'\tContent-length: 0\n' span_id:469) (Token id:Id.Lit_Chars val:'\n' span_id:470) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:471) (Token id:Id.Lit_Chars val:'\ttry_dump emptyrev.dump &&\n' span_id:472) (Token id: Id.Lit_Chars val: '\tgit log -p --format="rev <%an, %ae>: %s" HEAD >actual &&\n' span_id: 473 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:474) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'empty properties' span_id:483))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:487) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:488) (Token id: Id.Lit_Chars val: '\tprintf "rev <nobody, nobody@local>: %s\\n" "" "" >expect &&\n' span_id: 489 ) (Token id:Id.Lit_Chars val:'\tcat >emptyprop.dump <<-\\EOF &&\n' span_id:490) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:491) (Token id:Id.Lit_Chars val:'\n' span_id:492) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:493) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:494) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:495) (Token id:Id.Lit_Chars val:'\n' span_id:496) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:497) (Token id:Id.Lit_Chars val:'\n' span_id:498) (Token id:Id.Lit_Chars val:'\tRevision-number: 2\n' span_id:499) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:500) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:501) (Token id:Id.Lit_Chars val:'\n' span_id:502) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:503) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:504) (Token id:Id.Lit_Chars val:'\ttry_dump emptyprop.dump &&\n' span_id:505) (Token id: Id.Lit_Chars val: '\tgit log -p --format="rev <%an, %ae>: %s" HEAD >actual &&\n' span_id: 506 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:507) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'author name and commit message' span_id:516))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:520) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:521) (Token id: Id.Lit_Chars val: '\techo "<author@example.com, author@example.com@local>" >expect.author &&\n' span_id: 522 ) (Token id:Id.Lit_Chars val:'\tcat >message <<-\\EOF &&\n' span_id:523) (Token id:Id.Lit_Chars val:'\tA concise summary of the change\n' span_id:524) (Token id:Id.Lit_Chars val:'\n' span_id:525) (Token id: Id.Lit_Chars val: '\tA detailed description of the change, why it is needed, what\n' span_id: 526 ) (Token id: Id.Lit_Chars val: '\twas broken and why applying this is the best course of action.\n' span_id: 527 ) (Token id:Id.Lit_Chars val:'\n' span_id:528) (Token id:Id.Lit_Chars val:'\t* file.c\n' span_id:529) (Token id: Id.Lit_Chars val: '\t Details pertaining to an individual file.\n' span_id: 530 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:531) (Token id:Id.Lit_Chars val:'\t{\n' span_id:532) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:533) (Token id:Id.Lit_Chars val:'\t\t\tsvn:author author@example.com \\\n' span_id:534) (Token id:Id.Lit_Chars val:'\t\t\tsvn:log "$(cat message)" &&\n' span_id:535) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:536) (Token id:Id.Lit_Chars val:'\t} >props &&\n' span_id:537) (Token id:Id.Lit_Chars val:'\t{\n' span_id:538) (Token id: Id.Lit_Chars val: '\t\techo "SVN-fs-dump-format-version: 3" &&\n' span_id: 539 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:540) (Token id:Id.Lit_Chars val:'\t\techo "Revision-number: 1" &&\n' span_id:541) (Token id:Id.Lit_Chars val:'\t\techo Prop-content-length: $(wc -c <props) &&\n' span_id:542) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $(wc -c <props) &&\n' span_id: 543 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:544) (Token id:Id.Lit_Chars val:'\t\tcat props\n' span_id:545) (Token id:Id.Lit_Chars val:'\t} >log.dump &&\n' span_id:546) (Token id:Id.Lit_Chars val:'\ttry_dump log.dump &&\n' span_id:547) (Token id:Id.Lit_Chars val:'\tgit log -p --format="%B" HEAD >actual.log &&\n' span_id:548) (Token id: Id.Lit_Chars val: '\tgit log --format="<%an, %ae>" >actual.author &&\n' span_id: 549 ) (Token id:Id.Lit_Chars val:'\ttest_cmp message actual.log &&\n' span_id:550) (Token id: Id.Lit_Chars val: '\ttest_cmp expect.author actual.author\n' span_id: 551 ) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'unsupported properties are ignored' span_id:560))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:564) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:565) (Token id:Id.Lit_Chars val:'\techo author >expect &&\n' span_id:566) (Token id:Id.Lit_Chars val:'\tcat >extraprop.dump <<-\\EOF &&\n' span_id:567) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:568) (Token id:Id.Lit_Chars val:'\n' span_id:569) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:570) (Token id:Id.Lit_Chars val:'\tProp-content-length: 56\n' span_id:571) (Token id:Id.Lit_Chars val:'\tContent-length: 56\n' span_id:572) (Token id:Id.Lit_Chars val:'\n' span_id:573) (Token id:Id.Lit_Chars val:'\tK 8\n' span_id:574) (Token id:Id.Lit_Chars val:'\tnonsense\n' span_id:575) (Token id:Id.Lit_Chars val:'\tV 1\n' span_id:576) (Token id:Id.Lit_Chars val:'\ty\n' span_id:577) (Token id:Id.Lit_Chars val:'\tK 10\n' span_id:578) (Token id:Id.Lit_Chars val:'\tsvn:author\n' span_id:579) (Token id:Id.Lit_Chars val:'\tV 6\n' span_id:580) (Token id:Id.Lit_Chars val:'\tauthor\n' span_id:581) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:582) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:583) (Token id:Id.Lit_Chars val:'\ttry_dump extraprop.dump &&\n' span_id:584) (Token id:Id.Lit_Chars val:'\tgit log -p --format=%an HEAD >actual &&\n' span_id:585) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:586) ) } ) (C {(test_expect_failure)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'timestamp and empty file' span_id:595))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:599) (Token id: Id.Lit_Chars val: '\techo author@example.com >expect.author &&\n' span_id: 600 ) (Token id:Id.Lit_Chars val:'\techo 1999-01-01 >expect.date &&\n' span_id:601) (Token id:Id.Lit_Chars val:'\techo file >expect.files &&\n' span_id:602) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:603) (Token id:Id.Lit_Chars val:'\t{\n' span_id:604) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:605) (Token id: Id.Lit_Chars val: '\t\t\tsvn:author author@example.com \\\n' span_id: 606 ) (Token id:Id.Lit_Chars val:'\t\t\tsvn:date "1999-01-01T00:01:002.000000Z" \\\n' span_id:607) (Token id:Id.Lit_Chars val:'\t\t\tsvn:log "add empty file" &&\n' span_id:608) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:609) (Token id:Id.Lit_Chars val:'\t} >props &&\n' span_id:610) (Token id:Id.Lit_Chars val:'\t{\n' span_id:611) (Token id:Id.Lit_Chars val:'\t\tcat <<-EOF &&\n' span_id:612) (Token id:Id.Lit_Chars val:'\t\tSVN-fs-dump-format-version: 3\n' span_id:613) (Token id:Id.Lit_Chars val:'\n' span_id:614) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 1\n' span_id:615) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:616) (Token id:Id.Lit_Chars val:'\t\techo Prop-content-length: $(wc -c <props) &&\n' span_id:617) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $(wc -c <props) &&\n' span_id: 618 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:619) (Token id:Id.Lit_Chars val:'\t\tcat props &&\n' span_id:620) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF\n' span_id:621) (Token id:Id.Lit_Chars val:'\n' span_id:622) (Token id:Id.Lit_Chars val:'\t\tNode-path: empty-file\n' span_id:623) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:624) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:625) (Token id:Id.Lit_Chars val:'\t\tContent-length: 0\n' span_id:626) (Token id:Id.Lit_Chars val:'\n' span_id:627) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:628) (Token id:Id.Lit_Chars val:'\t} >emptyfile.dump &&\n' span_id:629) (Token id:Id.Lit_Chars val:'\ttry_dump emptyfile.dump &&\n' span_id:630) (Token id: Id.Lit_Chars val: '\tgit log --format=%an HEAD >actual.author &&\n' span_id: 631 ) (Token id:Id.Lit_Chars val:'\tgit log --date=short --format=%ad HEAD >actual.date &&\n' span_id:632) (Token id: Id.Lit_Chars val: '\tgit ls-tree -r --name-only HEAD >actual.files &&\n' span_id: 633 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.author actual.author &&\n' span_id:634) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.date actual.date &&\n' span_id:635) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.files actual.files &&\n' span_id:636) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD empty-file &&\n' span_id:637) (Token id:Id.Lit_Chars val:'\ttest_cmp empty file\n' span_id:638) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'directory with files' span_id:647))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:651) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:652) (Token id: Id.Lit_Chars val: '\tprintf "%s\\n" directory/file1 directory/file2 >expect.files &&\n' span_id: 653 ) (Token id:Id.Lit_Chars val:'\techo hi >hi &&\n' span_id:654) (Token id:Id.Lit_Chars val:'\techo hello >hello &&\n' span_id:655) (Token id:Id.Lit_Chars val:'\t{\n' span_id:656) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:657) (Token id:Id.Lit_Chars val:'\t\t\tsvn:author author@example.com \\\n' span_id:658) (Token id: Id.Lit_Chars val: '\t\t\tsvn:date "1999-02-01T00:01:002.000000Z" \\\n' span_id: 659 ) (Token id:Id.Lit_Chars val:'\t\t\tsvn:log "add directory with some files in it" &&\n' span_id:660) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:661) (Token id:Id.Lit_Chars val:'\t} >props &&\n' span_id:662) (Token id:Id.Lit_Chars val:'\t{\n' span_id:663) (Token id:Id.Lit_Chars val:'\t\tcat <<-EOF &&\n' span_id:664) (Token id:Id.Lit_Chars val:'\t\tSVN-fs-dump-format-version: 3\n' span_id:665) (Token id:Id.Lit_Chars val:'\n' span_id:666) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 1\n' span_id:667) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:668) (Token id: Id.Lit_Chars val: '\t\techo Prop-content-length: $(wc -c <props) &&\n' span_id: 669 ) (Token id:Id.Lit_Chars val:'\t\techo Content-length: $(wc -c <props) &&\n' span_id:670) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:671) (Token id:Id.Lit_Chars val:'\t\tcat props &&\n' span_id:672) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:673) (Token id:Id.Lit_Chars val:'\n' span_id:674) (Token id:Id.Lit_Chars val:'\t\tNode-path: directory\n' span_id:675) (Token id:Id.Lit_Chars val:'\t\tNode-kind: dir\n' span_id:676) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:677) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:678) (Token id:Id.Lit_Chars val:'\t\tContent-length: 10\n' span_id:679) (Token id:Id.Lit_Chars val:'\n' span_id:680) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:681) (Token id:Id.Lit_Chars val:'\n' span_id:682) (Token id:Id.Lit_Chars val:'\t\tNode-path: directory/file1\n' span_id:683) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:684) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:685) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:686) (Token id:Id.Lit_Chars val:'\t\ttext_no_props hello &&\n' span_id:687) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:688) (Token id:Id.Lit_Chars val:'\t\tNode-path: directory/file2\n' span_id:689) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:690) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:691) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:692) (Token id:Id.Lit_Chars val:'\t\ttext_no_props hi\n' span_id:693) (Token id:Id.Lit_Chars val:'\t} >directory.dump &&\n' span_id:694) (Token id:Id.Lit_Chars val:'\ttry_dump directory.dump &&\n' span_id:695) (Token id:Id.Lit_Chars val:'\n' span_id:696) (Token id:Id.Lit_Chars val:'\tgit ls-tree -r --name-only HEAD >actual.files &&\n' span_id:697) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD directory &&\n' span_id:698) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.files actual.files &&\n' span_id:699) (Token id:Id.Lit_Chars val:'\ttest_cmp hello directory/file1 &&\n' span_id:700) (Token id:Id.Lit_Chars val:'\ttest_cmp hi directory/file2\n' span_id:701) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'branch name with backslash' span_id:710))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:714) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:715) (Token id:Id.Lit_Chars val:'\tsort <<-\\EOF >expect.branch-files &&\n' span_id:716) (Token id:Id.Lit_Chars val:'\ttrunk/file1\n' span_id:717) (Token id:Id.Lit_Chars val:'\ttrunk/file2\n' span_id:718) (Token id:Id.Lit_Chars val:'\t"branches/UpdateFOPto094\\\\/file1"\n' span_id:719) (Token id:Id.Lit_Chars val:'\t"branches/UpdateFOPto094\\\\/file2"\n' span_id:720) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:721) (Token id:Id.Lit_Chars val:'\n' span_id:722) (Token id:Id.Lit_Chars val:'\techo hi >hi &&\n' span_id:723) (Token id:Id.Lit_Chars val:'\techo hello >hello &&\n' span_id:724) (Token id:Id.Lit_Chars val:'\t{\n' span_id:725) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:726) (Token id: Id.Lit_Chars val: '\t\t\tsvn:author author@example.com \\\n' span_id: 727 ) (Token id:Id.Lit_Chars val:'\t\t\tsvn:date "1999-02-02T00:01:02.000000Z" \\\n' span_id:728) (Token id: Id.Lit_Chars val: '\t\t\tsvn:log "add directory with some files in it" &&\n' span_id: 729 ) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:730) (Token id:Id.Lit_Chars val:'\t} >props.setup &&\n' span_id:731) (Token id:Id.Lit_Chars val:'\t{\n' span_id:732) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:733) (Token id:Id.Lit_Chars val:'\t\t\tsvn:author brancher@example.com \\\n' span_id:734) (Token id: Id.Lit_Chars val: '\t\t\tsvn:date "2007-12-06T21:38:34.000000Z" \\\n' span_id: 735 ) (Token id: Id.Lit_Chars val: '\t\t\tsvn:log "Updating fop to .94 and adjust fo-stylesheets" &&\n' span_id: 736 ) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:737) (Token id:Id.Lit_Chars val:'\t} >props.branch &&\n' span_id:738) (Token id:Id.Lit_Chars val:'\t{\n' span_id:739) (Token id:Id.Lit_Chars val:'\t\tcat <<-EOF &&\n' span_id:740) (Token id:Id.Lit_Chars val:'\t\tSVN-fs-dump-format-version: 3\n' span_id:741) (Token id:Id.Lit_Chars val:'\n' span_id:742) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 1\n' span_id:743) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:744) (Token id:Id.Lit_Chars val:'\t\techo Prop-content-length: $(wc -c <props.setup) &&\n' span_id:745) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $(wc -c <props.setup) &&\n' span_id: 746 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:747) (Token id:Id.Lit_Chars val:'\t\tcat props.setup &&\n' span_id:748) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:749) (Token id:Id.Lit_Chars val:'\n' span_id:750) (Token id:Id.Lit_Chars val:'\t\tNode-path: trunk\n' span_id:751) (Token id:Id.Lit_Chars val:'\t\tNode-kind: dir\n' span_id:752) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:753) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:754) (Token id:Id.Lit_Chars val:'\t\tContent-length: 10\n' span_id:755) (Token id:Id.Lit_Chars val:'\n' span_id:756) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:757) (Token id:Id.Lit_Chars val:'\n' span_id:758) (Token id:Id.Lit_Chars val:'\t\tNode-path: branches\n' span_id:759) (Token id:Id.Lit_Chars val:'\t\tNode-kind: dir\n' span_id:760) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:761) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:762) (Token id:Id.Lit_Chars val:'\t\tContent-length: 10\n' span_id:763) (Token id:Id.Lit_Chars val:'\n' span_id:764) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:765) (Token id:Id.Lit_Chars val:'\n' span_id:766) (Token id:Id.Lit_Chars val:'\t\tNode-path: trunk/file1\n' span_id:767) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:768) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:769) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:770) (Token id:Id.Lit_Chars val:'\t\ttext_no_props hello &&\n' span_id:771) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:772) (Token id:Id.Lit_Chars val:'\t\tNode-path: trunk/file2\n' span_id:773) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:774) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:775) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:776) (Token id:Id.Lit_Chars val:'\t\ttext_no_props hi &&\n' span_id:777) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:778) (Token id:Id.Lit_Chars val:'\n' span_id:779) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 2\n' span_id:780) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:781) (Token id: Id.Lit_Chars val: '\t\techo Prop-content-length: $(wc -c <props.branch) &&\n' span_id: 782 ) (Token id:Id.Lit_Chars val:'\t\techo Content-length: $(wc -c <props.branch) &&\n' span_id:783) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:784) (Token id:Id.Lit_Chars val:'\t\tcat props.branch &&\n' span_id:785) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF\n' span_id:786) (Token id:Id.Lit_Chars val:'\n' span_id:787) (Token id: Id.Lit_Chars val: '\t\tNode-path: branches/UpdateFOPto094\\\n' span_id: 788 ) (Token id:Id.Lit_Chars val:'\t\tNode-kind: dir\n' span_id:789) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:790) (Token id:Id.Lit_Chars val:'\t\tNode-copyfrom-rev: 1\n' span_id:791) (Token id:Id.Lit_Chars val:'\t\tNode-copyfrom-path: trunk\n' span_id:792) (Token id:Id.Lit_Chars val:'\n' span_id:793) (Token id:Id.Lit_Chars val:'\t\tNode-kind: dir\n' span_id:794) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:795) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 34\n' span_id:796) (Token id:Id.Lit_Chars val:'\t\tContent-length: 34\n' span_id:797) (Token id:Id.Lit_Chars val:'\n' span_id:798) (Token id:Id.Lit_Chars val:'\t\tK 13\n' span_id:799) (Token id:Id.Lit_Chars val:'\t\tsvn:mergeinfo\n' span_id:800) (Token id:Id.Lit_Chars val:'\t\tV 0\n' span_id:801) (Token id:Id.Lit_Chars val:'\n' span_id:802) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:803) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:804) (Token id:Id.Lit_Chars val:'\t} >branch.dump &&\n' span_id:805) (Token id:Id.Lit_Chars val:'\ttry_dump branch.dump &&\n' span_id:806) (Token id:Id.Lit_Chars val:'\n' span_id:807) (Token id:Id.Lit_Chars val:'\tgit ls-tree -r --name-only HEAD |\n' span_id:808) (Token id:Id.Lit_Chars val:'\tsort >actual.branch-files &&\n' span_id:809) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.branch-files actual.branch-files\n' span_id:810) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'node without action' span_id:819))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:823) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:824) (Token id:Id.Lit_Chars val:'\tcat >inaction.dump <<-\\EOF &&\n' span_id:825) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:826) (Token id:Id.Lit_Chars val:'\n' span_id:827) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:828) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:829) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:830) (Token id:Id.Lit_Chars val:'\n' span_id:831) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:832) (Token id:Id.Lit_Chars val:'\n' span_id:833) (Token id:Id.Lit_Chars val:'\tNode-path: directory\n' span_id:834) (Token id:Id.Lit_Chars val:'\tNode-kind: dir\n' span_id:835) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:836) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:837) (Token id:Id.Lit_Chars val:'\n' span_id:838) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:839) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:840) (Token id:Id.Lit_Chars val:'\ttry_dump inaction.dump must_fail\n' span_id:841) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'action: add node without text' span_id:850))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:854) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:855) (Token id:Id.Lit_Chars val:'\tcat >textless.dump <<-\\EOF &&\n' span_id:856) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:857) (Token id:Id.Lit_Chars val:'\n' span_id:858) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:859) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:860) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:861) (Token id:Id.Lit_Chars val:'\n' span_id:862) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:863) (Token id:Id.Lit_Chars val:'\n' span_id:864) (Token id:Id.Lit_Chars val:'\tNode-path: textless\n' span_id:865) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:866) (Token id:Id.Lit_Chars val:'\tNode-action: add\n' span_id:867) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:868) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:869) (Token id:Id.Lit_Chars val:'\n' span_id:870) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:871) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:872) (Token id:Id.Lit_Chars val:'\ttry_dump textless.dump must_fail\n' span_id:873) ) } ) (C {(test_expect_failure)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'change file mode but keep old content' span_id:882))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:886) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:887) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:888) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:889) (Token id:Id.Lit_Chars val:'\t:120000 100644 OBJID OBJID T\tgreeting\n' span_id:890) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:891) (Token id:Id.Lit_Chars val:'\t:100644 120000 OBJID OBJID T\tgreeting\n' span_id:892) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:893) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tgreeting\n' span_id:894) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:895) (Token id:Id.Lit_Chars val:'\techo "link hello" >expect.blob &&\n' span_id:896) (Token id:Id.Lit_Chars val:'\techo hello >hello &&\n' span_id:897) (Token id:Id.Lit_Chars val:'\tcat >filemode.dump <<-\\EOF &&\n' span_id:898) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:899) (Token id:Id.Lit_Chars val:'\n' span_id:900) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:901) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:902) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:903) (Token id:Id.Lit_Chars val:'\n' span_id:904) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:905) (Token id:Id.Lit_Chars val:'\n' span_id:906) (Token id:Id.Lit_Chars val:'\tNode-path: greeting\n' span_id:907) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:908) (Token id:Id.Lit_Chars val:'\tNode-action: add\n' span_id:909) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:910) (Token id:Id.Lit_Chars val:'\tText-content-length: 11\n' span_id:911) (Token id:Id.Lit_Chars val:'\tContent-length: 21\n' span_id:912) (Token id:Id.Lit_Chars val:'\n' span_id:913) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:914) (Token id:Id.Lit_Chars val:'\tlink hello\n' span_id:915) (Token id:Id.Lit_Chars val:'\n' span_id:916) (Token id:Id.Lit_Chars val:'\tRevision-number: 2\n' span_id:917) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:918) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:919) (Token id:Id.Lit_Chars val:'\n' span_id:920) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:921) (Token id:Id.Lit_Chars val:'\n' span_id:922) (Token id:Id.Lit_Chars val:'\tNode-path: greeting\n' span_id:923) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:924) (Token id:Id.Lit_Chars val:'\tNode-action: change\n' span_id:925) (Token id:Id.Lit_Chars val:'\tProp-content-length: 33\n' span_id:926) (Token id:Id.Lit_Chars val:'\tContent-length: 33\n' span_id:927) (Token id:Id.Lit_Chars val:'\n' span_id:928) (Token id:Id.Lit_Chars val:'\tK 11\n' span_id:929) (Token id:Id.Lit_Chars val:'\tsvn:special\n' span_id:930) (Token id:Id.Lit_Chars val:'\tV 1\n' span_id:931) (Token id:Id.Lit_Chars val:'\t*\n' span_id:932) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:933) (Token id:Id.Lit_Chars val:'\n' span_id:934) (Token id:Id.Lit_Chars val:'\tRevision-number: 3\n' span_id:935) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:936) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:937) (Token id:Id.Lit_Chars val:'\n' span_id:938) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:939) (Token id:Id.Lit_Chars val:'\n' span_id:940) (Token id:Id.Lit_Chars val:'\tNode-path: greeting\n' span_id:941) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:942) (Token id:Id.Lit_Chars val:'\tNode-action: change\n' span_id:943) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:944) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:945) (Token id:Id.Lit_Chars val:'\n' span_id:946) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:947) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:948) (Token id:Id.Lit_Chars val:'\ttry_dump filemode.dump &&\n' span_id:949) (Token id:Id.Lit_Chars val:'\t{\n' span_id:950) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:951) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:952) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:953) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:954) (Token id:Id.Lit_Chars val:'\tgit show HEAD:greeting >actual.blob &&\n' span_id:955) (Token id: Id.Lit_Chars val: '\tgit show HEAD^:greeting >actual.target &&\n' span_id: 956 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:957) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.blob actual.blob &&\n' span_id:958) (Token id:Id.Lit_Chars val:'\ttest_cmp hello actual.target\n' span_id:959) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'NUL in property value' span_id:968))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:972) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:973) (Token id:Id.Lit_Chars val:'\techo "commit message" >expect.message &&\n' span_id:974) (Token id:Id.Lit_Chars val:'\t{\n' span_id:975) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:976) (Token id: Id.Lit_Chars val: '\t\t\tunimportant "something with a NUL (Q)" \\\n' span_id: 977 ) (Token id:Id.Lit_Chars val:'\t\t\tsvn:log "commit message"&&\n' span_id:978) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:979) (Token id:Id.Lit_Chars val:'\t} |\n' span_id:980) (Token id:Id.Lit_Chars val:'\tq_to_nul >props &&\n' span_id:981) (Token id:Id.Lit_Chars val:'\t{\n' span_id:982) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:983) (Token id:Id.Lit_Chars val:'\t\tSVN-fs-dump-format-version: 3\n' span_id:984) (Token id:Id.Lit_Chars val:'\n' span_id:985) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 1\n' span_id:986) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:987) (Token id:Id.Lit_Chars val:'\t\techo Prop-content-length: $(wc -c <props) &&\n' span_id:988) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $(wc -c <props) &&\n' span_id: 989 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:990) (Token id:Id.Lit_Chars val:'\t\tcat props\n' span_id:991) (Token id:Id.Lit_Chars val:'\t} >nulprop.dump &&\n' span_id:992) (Token id:Id.Lit_Chars val:'\ttry_dump nulprop.dump &&\n' span_id:993) (Token id: Id.Lit_Chars val: '\tgit diff-tree --always -s --format=%s HEAD >actual.message &&\n' span_id: 994 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.message actual.message\n' span_id:995) ) } ) (C {(test_expect_success)} {(PIPE)} { (SQ (Token id: Id.Lit_Chars val: 'NUL in log message, file content, and property name' span_id: 1004 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1008) (Token id: Id.Lit_Chars val: '\t# Caveat: svnadmin 1.6.16 (r1073529) truncates at \\0 in the\n' span_id: 1009 ) (Token id:Id.Lit_Chars val:'\t# svn:specialQnotreally example.\n' span_id:1010) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:1011) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:1012) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1013) (Token id:Id.Lit_Chars val:'\t:100644 100644 OBJID OBJID M\tgreeting\n' span_id:1014) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1015) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tgreeting\n' span_id:1016) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1017) (Token id: Id.Lit_Chars val: '\tprintf "\\n%s\\n" "something with an ASCII NUL (Q)" >expect.message &&\n' span_id: 1018 ) (Token id:Id.Lit_Chars val:'\tprintf "%s\\n" "helQo" >expect.hello1 &&\n' span_id:1019) (Token id: Id.Lit_Chars val: '\tprintf "%s\\n" "link hello" >expect.hello2 &&\n' span_id: 1020 ) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1021) (Token id: Id.Lit_Chars val: '\t\tproperties svn:log "something with an ASCII NUL (Q)" &&\n' span_id: 1022 ) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:1023) (Token id:Id.Lit_Chars val:'\t} |\n' span_id:1024) (Token id:Id.Lit_Chars val:'\tq_to_nul >props &&\n' span_id:1025) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1026) (Token id:Id.Lit_Chars val:'\t\tq_to_nul <<-\\EOF &&\n' span_id:1027) (Token id:Id.Lit_Chars val:'\t\tSVN-fs-dump-format-version: 3\n' span_id:1028) (Token id:Id.Lit_Chars val:'\n' span_id:1029) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 1\n' span_id:1030) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1031) (Token id:Id.Lit_Chars val:'\t\tContent-length: 10\n' span_id:1032) (Token id:Id.Lit_Chars val:'\n' span_id:1033) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1034) (Token id:Id.Lit_Chars val:'\n' span_id:1035) (Token id:Id.Lit_Chars val:'\t\tNode-path: greeting\n' span_id:1036) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1037) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:1038) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1039) (Token id:Id.Lit_Chars val:'\t\tText-content-length: 6\n' span_id:1040) (Token id:Id.Lit_Chars val:'\t\tContent-length: 16\n' span_id:1041) (Token id:Id.Lit_Chars val:'\n' span_id:1042) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1043) (Token id:Id.Lit_Chars val:'\t\thelQo\n' span_id:1044) (Token id:Id.Lit_Chars val:'\n' span_id:1045) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 2\n' span_id:1046) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1047) (Token id: Id.Lit_Chars val: '\t\techo Prop-content-length: $(wc -c <props) &&\n' span_id: 1048 ) (Token id:Id.Lit_Chars val:'\t\techo Content-length: $(wc -c <props) &&\n' span_id:1049) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1050) (Token id:Id.Lit_Chars val:'\t\tcat props &&\n' span_id:1051) (Token id:Id.Lit_Chars val:'\t\tq_to_nul <<-\\EOF\n' span_id:1052) (Token id:Id.Lit_Chars val:'\n' span_id:1053) (Token id:Id.Lit_Chars val:'\t\tNode-path: greeting\n' span_id:1054) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1055) (Token id:Id.Lit_Chars val:'\t\tNode-action: change\n' span_id:1056) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 43\n' span_id:1057) (Token id:Id.Lit_Chars val:'\t\tText-content-length: 11\n' span_id:1058) (Token id:Id.Lit_Chars val:'\t\tContent-length: 54\n' span_id:1059) (Token id:Id.Lit_Chars val:'\n' span_id:1060) (Token id:Id.Lit_Chars val:'\t\tK 21\n' span_id:1061) (Token id:Id.Lit_Chars val:'\t\tsvn:specialQnotreally\n' span_id:1062) (Token id:Id.Lit_Chars val:'\t\tV 1\n' span_id:1063) (Token id:Id.Lit_Chars val:'\t\t*\n' span_id:1064) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1065) (Token id:Id.Lit_Chars val:'\t\tlink hello\n' span_id:1066) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1067) (Token id:Id.Lit_Chars val:'\t} >8bitclean.dump &&\n' span_id:1068) (Token id:Id.Lit_Chars val:'\ttry_dump 8bitclean.dump &&\n' span_id:1069) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1070) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:1071) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:1072) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:1073) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:1074) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1075) (Token id: Id.Lit_Chars val: '\t\tgit cat-file commit HEAD | nul_to_q &&\n' span_id: 1076 ) (Token id:Id.Lit_Chars val:'\t\techo\n' span_id:1077) (Token id:Id.Lit_Chars val:'\t} |\n' span_id:1078) (Token id:Id.Lit_Chars val:'\tsed -ne "/^\\$/,\\$ p" >actual.message &&\n' span_id:1079) (Token id: Id.Lit_Chars val: '\tgit cat-file blob HEAD^:greeting | nul_to_q >actual.hello1 &&\n' span_id: 1080 ) (Token id: Id.Lit_Chars val: '\tgit cat-file blob HEAD:greeting | nul_to_q >actual.hello2 &&\n' span_id: 1081 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:1082) (Token id: Id.Lit_Chars val: '\ttest_cmp expect.message actual.message &&\n' span_id: 1083 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.hello1 actual.hello1 &&\n' span_id:1084) (Token id: Id.Lit_Chars val: '\ttest_cmp expect.hello2 actual.hello2\n' span_id: 1085 ) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'change file mode and reiterate content' span_id:1094))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1098) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:1099) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:1100) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1101) (Token id:Id.Lit_Chars val:'\t:120000 100644 OBJID OBJID T\tgreeting\n' span_id:1102) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1103) (Token id:Id.Lit_Chars val:'\t:100644 120000 OBJID OBJID T\tgreeting\n' span_id:1104) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1105) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tgreeting\n' span_id:1106) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1107) (Token id:Id.Lit_Chars val:'\techo "link hello" >expect.blob &&\n' span_id:1108) (Token id:Id.Lit_Chars val:'\techo hello >hello &&\n' span_id:1109) (Token id:Id.Lit_Chars val:'\tcat >filemode2.dump <<-\\EOF &&\n' span_id:1110) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:1111) (Token id:Id.Lit_Chars val:'\n' span_id:1112) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:1113) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1114) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1115) (Token id:Id.Lit_Chars val:'\n' span_id:1116) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1117) (Token id:Id.Lit_Chars val:'\n' span_id:1118) (Token id:Id.Lit_Chars val:'\tNode-path: greeting\n' span_id:1119) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:1120) (Token id:Id.Lit_Chars val:'\tNode-action: add\n' span_id:1121) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1122) (Token id:Id.Lit_Chars val:'\tText-content-length: 11\n' span_id:1123) (Token id:Id.Lit_Chars val:'\tContent-length: 21\n' span_id:1124) (Token id:Id.Lit_Chars val:'\n' span_id:1125) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1126) (Token id:Id.Lit_Chars val:'\tlink hello\n' span_id:1127) (Token id:Id.Lit_Chars val:'\n' span_id:1128) (Token id:Id.Lit_Chars val:'\tRevision-number: 2\n' span_id:1129) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1130) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1131) (Token id:Id.Lit_Chars val:'\n' span_id:1132) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1133) (Token id:Id.Lit_Chars val:'\n' span_id:1134) (Token id:Id.Lit_Chars val:'\tNode-path: greeting\n' span_id:1135) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:1136) (Token id:Id.Lit_Chars val:'\tNode-action: change\n' span_id:1137) (Token id:Id.Lit_Chars val:'\tProp-content-length: 33\n' span_id:1138) (Token id:Id.Lit_Chars val:'\tText-content-length: 11\n' span_id:1139) (Token id:Id.Lit_Chars val:'\tContent-length: 44\n' span_id:1140) (Token id:Id.Lit_Chars val:'\n' span_id:1141) (Token id:Id.Lit_Chars val:'\tK 11\n' span_id:1142) (Token id:Id.Lit_Chars val:'\tsvn:special\n' span_id:1143) (Token id:Id.Lit_Chars val:'\tV 1\n' span_id:1144) (Token id:Id.Lit_Chars val:'\t*\n' span_id:1145) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1146) (Token id:Id.Lit_Chars val:'\tlink hello\n' span_id:1147) (Token id:Id.Lit_Chars val:'\n' span_id:1148) (Token id:Id.Lit_Chars val:'\tRevision-number: 3\n' span_id:1149) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1150) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1151) (Token id:Id.Lit_Chars val:'\n' span_id:1152) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1153) (Token id:Id.Lit_Chars val:'\n' span_id:1154) (Token id:Id.Lit_Chars val:'\tNode-path: greeting\n' span_id:1155) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:1156) (Token id:Id.Lit_Chars val:'\tNode-action: change\n' span_id:1157) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1158) (Token id:Id.Lit_Chars val:'\tText-content-length: 11\n' span_id:1159) (Token id:Id.Lit_Chars val:'\tContent-length: 21\n' span_id:1160) (Token id:Id.Lit_Chars val:'\n' span_id:1161) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1162) (Token id:Id.Lit_Chars val:'\tlink hello\n' span_id:1163) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1164) (Token id:Id.Lit_Chars val:'\ttry_dump filemode2.dump &&\n' span_id:1165) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1166) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:1167) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:1168) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:1169) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:1170) (Token id: Id.Lit_Chars val: '\tgit show HEAD:greeting >actual.blob &&\n' span_id: 1171 ) (Token id:Id.Lit_Chars val:'\tgit show HEAD^:greeting >actual.target &&\n' span_id:1172) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:1173) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.blob actual.blob &&\n' span_id:1174) (Token id:Id.Lit_Chars val:'\ttest_cmp hello actual.target\n' span_id:1175) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'deltas supported' span_id:1184))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1188) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:1189) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1190) (Token id: Id.Lit_Chars val: '\t\t# (old) h + (inline) ello + (old) \\n\n' span_id: 1191 ) (Token id: Id.Lit_Chars val: '\t\tprintf "SVNQ%b%b%s" "Q\\003\\006\\005\\004" "\\001Q\\0204\\001\\002" "ello" |\n' span_id: 1192 ) (Token id:Id.Lit_Chars val:'\t\tq_to_nul\n' span_id:1193) (Token id:Id.Lit_Chars val:'\t} >delta &&\n' span_id:1194) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1195) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:1196) (Token id:Id.Lit_Chars val:'\t\t\tsvn:author author@example.com \\\n' span_id:1197) (Token id: Id.Lit_Chars val: '\t\t\tsvn:date "1999-01-05T00:01:002.000000Z" \\\n' span_id: 1198 ) (Token id:Id.Lit_Chars val:'\t\t\tsvn:log "add greeting" &&\n' span_id:1199) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:1200) (Token id:Id.Lit_Chars val:'\t} >props &&\n' span_id:1201) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1202) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:1203) (Token id: Id.Lit_Chars val: '\t\t\tsvn:author author@example.com \\\n' span_id: 1204 ) (Token id:Id.Lit_Chars val:'\t\t\tsvn:date "1999-01-06T00:01:002.000000Z" \\\n' span_id:1205) (Token id:Id.Lit_Chars val:'\t\t\tsvn:log "change it" &&\n' span_id:1206) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:1207) (Token id:Id.Lit_Chars val:'\t} >props2 &&\n' span_id:1208) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1209) (Token id: Id.Lit_Chars val: '\t\techo SVN-fs-dump-format-version: 3 &&\n' span_id: 1210 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1211) (Token id:Id.Lit_Chars val:'\t\techo Revision-number: 1 &&\n' span_id:1212) (Token id:Id.Lit_Chars val:'\t\techo Prop-content-length: $(wc -c <props) &&\n' span_id:1213) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $(wc -c <props) &&\n' span_id: 1214 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1215) (Token id:Id.Lit_Chars val:'\t\tcat props &&\n' span_id:1216) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:1217) (Token id:Id.Lit_Chars val:'\n' span_id:1218) (Token id:Id.Lit_Chars val:'\t\tNode-path: hello\n' span_id:1219) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1220) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:1221) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1222) (Token id:Id.Lit_Chars val:'\t\tText-content-length: 3\n' span_id:1223) (Token id:Id.Lit_Chars val:'\t\tContent-length: 13\n' span_id:1224) (Token id:Id.Lit_Chars val:'\n' span_id:1225) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1226) (Token id:Id.Lit_Chars val:'\t\thi\n' span_id:1227) (Token id:Id.Lit_Chars val:'\n' span_id:1228) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1229) (Token id:Id.Lit_Chars val:'\t\techo Revision-number: 2 &&\n' span_id:1230) (Token id: Id.Lit_Chars val: '\t\techo Prop-content-length: $(wc -c <props2) &&\n' span_id: 1231 ) (Token id:Id.Lit_Chars val:'\t\techo Content-length: $(wc -c <props2) &&\n' span_id:1232) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1233) (Token id:Id.Lit_Chars val:'\t\tcat props2 &&\n' span_id:1234) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:1235) (Token id:Id.Lit_Chars val:'\n' span_id:1236) (Token id:Id.Lit_Chars val:'\t\tNode-path: hello\n' span_id:1237) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1238) (Token id:Id.Lit_Chars val:'\t\tNode-action: change\n' span_id:1239) (Token id:Id.Lit_Chars val:'\t\tText-delta: true\n' span_id:1240) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1241) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1242) (Token id: Id.Lit_Chars val: '\t\techo Text-content-length: $(wc -c <delta) &&\n' span_id: 1243 ) (Token id:Id.Lit_Chars val:'\t\techo Content-length: $((10 + $(wc -c <delta))) &&\n' span_id:1244) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1245) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END &&\n' span_id:1246) (Token id:Id.Lit_Chars val:'\t\tcat delta\n' span_id:1247) (Token id:Id.Lit_Chars val:'\t} >delta.dump &&\n' span_id:1248) (Token id:Id.Lit_Chars val:'\ttry_dump delta.dump\n' span_id:1249) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'property deltas supported' span_id:1258))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1262) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:1263) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:1264) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1265) (Token id:Id.Lit_Chars val:'\t:100755 100644 OBJID OBJID M\tscript.sh\n' span_id:1266) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1267) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1268) (Token id:Id.Lit_Chars val:'\t\tproperties \\\n' span_id:1269) (Token id:Id.Lit_Chars val:'\t\t\tsvn:author author@example.com \\\n' span_id:1270) (Token id: Id.Lit_Chars val: '\t\t\tsvn:date "1999-03-06T00:01:002.000000Z" \\\n' span_id: 1271 ) (Token id:Id.Lit_Chars val:'\t\t\tsvn:log "make an executable, or chmod -x it" &&\n' span_id:1272) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:1273) (Token id:Id.Lit_Chars val:'\t} >revprops &&\n' span_id:1274) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1275) (Token id:Id.Lit_Chars val:'\t\techo SVN-fs-dump-format-version: 3 &&\n' span_id:1276) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1277) (Token id:Id.Lit_Chars val:'\t\techo Revision-number: 1 &&\n' span_id:1278) (Token id: Id.Lit_Chars val: '\t\techo Prop-content-length: $(wc -c <revprops) &&\n' span_id: 1279 ) (Token id:Id.Lit_Chars val:'\t\techo Content-length: $(wc -c <revprops) &&\n' span_id:1280) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1281) (Token id:Id.Lit_Chars val:'\t\tcat revprops &&\n' span_id:1282) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1283) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:1284) (Token id:Id.Lit_Chars val:'\t\tNode-path: script.sh\n' span_id:1285) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1286) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:1287) (Token id:Id.Lit_Chars val:'\t\tText-content-length: 0\n' span_id:1288) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 39\n' span_id:1289) (Token id:Id.Lit_Chars val:'\t\tContent-length: 39\n' span_id:1290) (Token id:Id.Lit_Chars val:'\n' span_id:1291) (Token id:Id.Lit_Chars val:'\t\tK 14\n' span_id:1292) (Token id:Id.Lit_Chars val:'\t\tsvn:executable\n' span_id:1293) (Token id:Id.Lit_Chars val:'\t\tV 4\n' span_id:1294) (Token id:Id.Lit_Chars val:'\t\ttrue\n' span_id:1295) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1296) (Token id:Id.Lit_Chars val:'\n' span_id:1297) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1298) (Token id:Id.Lit_Chars val:'\t\techo Revision-number: 2 &&\n' span_id:1299) (Token id:Id.Lit_Chars val:'\t\techo Prop-content-length: $(wc -c <revprops) &&\n' span_id:1300) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $(wc -c <revprops) &&\n' span_id: 1301 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1302) (Token id:Id.Lit_Chars val:'\t\tcat revprops &&\n' span_id:1303) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1304) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF\n' span_id:1305) (Token id:Id.Lit_Chars val:'\t\tNode-path: script.sh\n' span_id:1306) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1307) (Token id:Id.Lit_Chars val:'\t\tNode-action: change\n' span_id:1308) (Token id:Id.Lit_Chars val:'\t\tProp-delta: true\n' span_id:1309) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 30\n' span_id:1310) (Token id:Id.Lit_Chars val:'\t\tContent-length: 30\n' span_id:1311) (Token id:Id.Lit_Chars val:'\n' span_id:1312) (Token id:Id.Lit_Chars val:'\t\tD 14\n' span_id:1313) (Token id:Id.Lit_Chars val:'\t\tsvn:executable\n' span_id:1314) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1315) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1316) (Token id:Id.Lit_Chars val:'\t} >propdelta.dump &&\n' span_id:1317) (Token id:Id.Lit_Chars val:'\ttry_dump propdelta.dump &&\n' span_id:1318) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1319) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:1320) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --stdin |\n' span_id:1321) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:1322) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:1323) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:1324) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'properties on /' span_id:1333))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1337) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:1338) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expect &&\n' span_id:1339) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1340) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1341) (Token id: Id.Lit_Chars val: '\t:000000 100644 OBJID OBJID A\tgreeting\n' span_id: 1342 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1343) (Token id: Id.Lit_Chars val: '\tsed -e "s/X$//" <<-\\EOF >changeroot.dump &&\n' span_id: 1344 ) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:1345) (Token id:Id.Lit_Chars val:'\n' span_id:1346) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:1347) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1348) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1349) (Token id:Id.Lit_Chars val:'\n' span_id:1350) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1351) (Token id:Id.Lit_Chars val:'\n' span_id:1352) (Token id:Id.Lit_Chars val:'\tNode-path: greeting\n' span_id:1353) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:1354) (Token id:Id.Lit_Chars val:'\tNode-action: add\n' span_id:1355) (Token id:Id.Lit_Chars val:'\tText-content-length: 0\n' span_id:1356) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1357) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1358) (Token id:Id.Lit_Chars val:'\n' span_id:1359) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1360) (Token id:Id.Lit_Chars val:'\n' span_id:1361) (Token id:Id.Lit_Chars val:'\tRevision-number: 2\n' span_id:1362) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1363) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1364) (Token id:Id.Lit_Chars val:'\n' span_id:1365) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1366) (Token id:Id.Lit_Chars val:'\n' span_id:1367) (Token id:Id.Lit_Chars val:'\tNode-path: X\n' span_id:1368) (Token id:Id.Lit_Chars val:'\tNode-kind: dir\n' span_id:1369) (Token id:Id.Lit_Chars val:'\tNode-action: change\n' span_id:1370) (Token id:Id.Lit_Chars val:'\tProp-delta: true\n' span_id:1371) (Token id:Id.Lit_Chars val:'\tProp-content-length: 43\n' span_id:1372) (Token id:Id.Lit_Chars val:'\tContent-length: 43\n' span_id:1373) (Token id:Id.Lit_Chars val:'\n' span_id:1374) (Token id:Id.Lit_Chars val:'\tK 10\n' span_id:1375) (Token id:Id.Lit_Chars val:'\tsvn:ignore\n' span_id:1376) (Token id:Id.Lit_Chars val:'\tV 11\n' span_id:1377) (Token id:Id.Lit_Chars val:'\tbuild-area\n' span_id:1378) (Token id:Id.Lit_Chars val:'\n' span_id:1379) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1380) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1381) (Token id:Id.Lit_Chars val:'\ttry_dump changeroot.dump &&\n' span_id:1382) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1383) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:1384) (Token id: Id.Lit_Chars val: '\t\tgit diff-tree --root --always --stdin |\n' span_id: 1385 ) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:1386) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:1387) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:1388) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'deltas for typechange' span_id:1397))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1401) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:1402) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:1403) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1404) (Token id:Id.Lit_Chars val:'\t:120000 100644 OBJID OBJID T\ttest-file\n' span_id:1405) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1406) (Token id:Id.Lit_Chars val:'\t:100755 120000 OBJID OBJID T\ttest-file\n' span_id:1407) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1408) (Token id:Id.Lit_Chars val:'\t:000000 100755 OBJID OBJID A\ttest-file\n' span_id:1409) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1410) (Token id:Id.Lit_Chars val:'\tcat >deleteprop.dump <<-\\EOF &&\n' span_id:1411) (Token id:Id.Lit_Chars val:'\tSVN-fs-dump-format-version: 3\n' span_id:1412) (Token id:Id.Lit_Chars val:'\n' span_id:1413) (Token id:Id.Lit_Chars val:'\tRevision-number: 1\n' span_id:1414) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1415) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1416) (Token id:Id.Lit_Chars val:'\n' span_id:1417) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1418) (Token id:Id.Lit_Chars val:'\n' span_id:1419) (Token id:Id.Lit_Chars val:'\tNode-path: test-file\n' span_id:1420) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:1421) (Token id:Id.Lit_Chars val:'\tNode-action: add\n' span_id:1422) (Token id:Id.Lit_Chars val:'\tProp-delta: true\n' span_id:1423) (Token id:Id.Lit_Chars val:'\tProp-content-length: 35\n' span_id:1424) (Token id:Id.Lit_Chars val:'\tText-content-length: 17\n' span_id:1425) (Token id:Id.Lit_Chars val:'\tContent-length: 52\n' span_id:1426) (Token id:Id.Lit_Chars val:'\n' span_id:1427) (Token id:Id.Lit_Chars val:'\tK 14\n' span_id:1428) (Token id:Id.Lit_Chars val:'\tsvn:executable\n' span_id:1429) (Token id:Id.Lit_Chars val:'\tV 0\n' span_id:1430) (Token id:Id.Lit_Chars val:'\n' span_id:1431) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1432) (Token id:Id.Lit_Chars val:'\tlink testing 123\n' span_id:1433) (Token id:Id.Lit_Chars val:'\n' span_id:1434) (Token id:Id.Lit_Chars val:'\tRevision-number: 2\n' span_id:1435) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1436) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1437) (Token id:Id.Lit_Chars val:'\n' span_id:1438) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1439) (Token id:Id.Lit_Chars val:'\n' span_id:1440) (Token id:Id.Lit_Chars val:'\tNode-path: test-file\n' span_id:1441) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:1442) (Token id:Id.Lit_Chars val:'\tNode-action: change\n' span_id:1443) (Token id:Id.Lit_Chars val:'\tProp-delta: true\n' span_id:1444) (Token id:Id.Lit_Chars val:'\tProp-content-length: 53\n' span_id:1445) (Token id:Id.Lit_Chars val:'\tText-content-length: 17\n' span_id:1446) (Token id:Id.Lit_Chars val:'\tContent-length: 70\n' span_id:1447) (Token id:Id.Lit_Chars val:'\n' span_id:1448) (Token id:Id.Lit_Chars val:'\tK 11\n' span_id:1449) (Token id:Id.Lit_Chars val:'\tsvn:special\n' span_id:1450) (Token id:Id.Lit_Chars val:'\tV 1\n' span_id:1451) (Token id:Id.Lit_Chars val:'\t*\n' span_id:1452) (Token id:Id.Lit_Chars val:'\tD 14\n' span_id:1453) (Token id:Id.Lit_Chars val:'\tsvn:executable\n' span_id:1454) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1455) (Token id:Id.Lit_Chars val:'\tlink testing 231\n' span_id:1456) (Token id:Id.Lit_Chars val:'\n' span_id:1457) (Token id:Id.Lit_Chars val:'\tRevision-number: 3\n' span_id:1458) (Token id:Id.Lit_Chars val:'\tProp-content-length: 10\n' span_id:1459) (Token id:Id.Lit_Chars val:'\tContent-length: 10\n' span_id:1460) (Token id:Id.Lit_Chars val:'\n' span_id:1461) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1462) (Token id:Id.Lit_Chars val:'\n' span_id:1463) (Token id:Id.Lit_Chars val:'\tNode-path: test-file\n' span_id:1464) (Token id:Id.Lit_Chars val:'\tNode-kind: file\n' span_id:1465) (Token id:Id.Lit_Chars val:'\tNode-action: change\n' span_id:1466) (Token id:Id.Lit_Chars val:'\tProp-delta: true\n' span_id:1467) (Token id:Id.Lit_Chars val:'\tProp-content-length: 27\n' span_id:1468) (Token id:Id.Lit_Chars val:'\tText-content-length: 17\n' span_id:1469) (Token id:Id.Lit_Chars val:'\tContent-length: 44\n' span_id:1470) (Token id:Id.Lit_Chars val:'\n' span_id:1471) (Token id:Id.Lit_Chars val:'\tD 11\n' span_id:1472) (Token id:Id.Lit_Chars val:'\tsvn:special\n' span_id:1473) (Token id:Id.Lit_Chars val:'\tPROPS-END\n' span_id:1474) (Token id:Id.Lit_Chars val:'\tlink testing 321\n' span_id:1475) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1476) (Token id:Id.Lit_Chars val:'\ttry_dump deleteprop.dump &&\n' span_id:1477) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1478) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:1479) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:1480) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:1481) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:1482) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:1483) ) } ) (C {(test_expect_success)} {(PIPE)} {(SQ (Token id:Id.Lit_Chars val:'deltas need not consume the whole preimage' span_id:1492))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1496) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:1497) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:1498) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1499) (Token id:Id.Lit_Chars val:'\t:120000 100644 OBJID OBJID T\tpostimage\n' span_id:1500) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1501) (Token id:Id.Lit_Chars val:'\t:100644 120000 OBJID OBJID T\tpostimage\n' span_id:1502) (Token id:Id.Lit_Chars val:'\tOBJID\n' span_id:1503) (Token id:Id.Lit_Chars val:'\t:000000 100644 OBJID OBJID A\tpostimage\n' span_id:1504) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1505) (Token id:Id.Lit_Chars val:'\techo "first preimage" >expect.1 &&\n' span_id:1506) (Token id:Id.Lit_Chars val:'\tprintf target >expect.2 &&\n' span_id:1507) (Token id:Id.Lit_Chars val:'\tprintf lnk >expect.3 &&\n' span_id:1508) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1509) (Token id: Id.Lit_Chars val: '\t\tprintf "SVNQ%b%b%b" "QQ\\017\\001\\017" "\\0217" "first preimage\\n" |\n' span_id: 1510 ) (Token id:Id.Lit_Chars val:'\t\tq_to_nul\n' span_id:1511) (Token id:Id.Lit_Chars val:'\t} >delta.1 &&\n' span_id:1512) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1513) (Token id:Id.Lit_Chars val:'\t\tproperties svn:special "*" &&\n' span_id:1514) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END\n' span_id:1515) (Token id:Id.Lit_Chars val:'\t} >symlink.props &&\n' span_id:1516) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1517) (Token id: Id.Lit_Chars val: '\t\tprintf "SVNQ%b%b%b" "Q\\002\\013\\004\\012" "\\0201\\001\\001\\0211" "lnk target" |\n' span_id: 1518 ) (Token id:Id.Lit_Chars val:'\t\tq_to_nul\n' span_id:1519) (Token id:Id.Lit_Chars val:'\t} >delta.2 &&\n' span_id:1520) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1521) (Token id: Id.Lit_Chars val: '\t\tprintf "SVNQ%b%b" "Q\\004\\003\\004Q" "\\001Q\\002\\002" |\n' span_id: 1522 ) (Token id:Id.Lit_Chars val:'\t\tq_to_nul\n' span_id:1523) (Token id:Id.Lit_Chars val:'\t} >delta.3 &&\n' span_id:1524) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1525) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:1526) (Token id:Id.Lit_Chars val:'\t\tSVN-fs-dump-format-version: 3\n' span_id:1527) (Token id:Id.Lit_Chars val:'\n' span_id:1528) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 1\n' span_id:1529) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1530) (Token id:Id.Lit_Chars val:'\t\tContent-length: 10\n' span_id:1531) (Token id:Id.Lit_Chars val:'\n' span_id:1532) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1533) (Token id:Id.Lit_Chars val:'\n' span_id:1534) (Token id:Id.Lit_Chars val:'\t\tNode-path: postimage\n' span_id:1535) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1536) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:1537) (Token id:Id.Lit_Chars val:'\t\tText-delta: true\n' span_id:1538) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1539) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1540) (Token id:Id.Lit_Chars val:'\t\techo Text-content-length: $(wc -c <delta.1) &&\n' span_id:1541) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $((10 + $(wc -c <delta.1))) &&\n' span_id: 1542 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1543) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END &&\n' span_id:1544) (Token id:Id.Lit_Chars val:'\t\tcat delta.1 &&\n' span_id:1545) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:1546) (Token id:Id.Lit_Chars val:'\n' span_id:1547) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 2\n' span_id:1548) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1549) (Token id:Id.Lit_Chars val:'\t\tContent-length: 10\n' span_id:1550) (Token id:Id.Lit_Chars val:'\n' span_id:1551) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1552) (Token id:Id.Lit_Chars val:'\n' span_id:1553) (Token id:Id.Lit_Chars val:'\t\tNode-path: postimage\n' span_id:1554) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1555) (Token id:Id.Lit_Chars val:'\t\tNode-action: change\n' span_id:1556) (Token id:Id.Lit_Chars val:'\t\tText-delta: true\n' span_id:1557) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1558) (Token id:Id.Lit_Chars val:'\t\techo Prop-content-length: $(wc -c <symlink.props) &&\n' span_id:1559) (Token id: Id.Lit_Chars val: '\t\techo Text-content-length: $(wc -c <delta.2) &&\n' span_id: 1560 ) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $(($(wc -c <symlink.props) + $(wc -c <delta.2))) &&\n' span_id: 1561 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1562) (Token id:Id.Lit_Chars val:'\t\tcat symlink.props &&\n' span_id:1563) (Token id:Id.Lit_Chars val:'\t\tcat delta.2 &&\n' span_id:1564) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:1565) (Token id:Id.Lit_Chars val:'\n' span_id:1566) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 3\n' span_id:1567) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1568) (Token id:Id.Lit_Chars val:'\t\tContent-length: 10\n' span_id:1569) (Token id:Id.Lit_Chars val:'\n' span_id:1570) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1571) (Token id:Id.Lit_Chars val:'\n' span_id:1572) (Token id:Id.Lit_Chars val:'\t\tNode-path: postimage\n' span_id:1573) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1574) (Token id:Id.Lit_Chars val:'\t\tNode-action: change\n' span_id:1575) (Token id:Id.Lit_Chars val:'\t\tText-delta: true\n' span_id:1576) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1577) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1578) (Token id: Id.Lit_Chars val: '\t\techo Text-content-length: $(wc -c <delta.3) &&\n' span_id: 1579 ) (Token id:Id.Lit_Chars val:'\t\techo Content-length: $((10 + $(wc -c <delta.3))) &&\n' span_id:1580) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1581) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END &&\n' span_id:1582) (Token id:Id.Lit_Chars val:'\t\tcat delta.3 &&\n' span_id:1583) (Token id:Id.Lit_Chars val:'\t\techo\n' span_id:1584) (Token id:Id.Lit_Chars val:'\t} >deltapartial.dump &&\n' span_id:1585) (Token id:Id.Lit_Chars val:'\ttry_dump deltapartial.dump &&\n' span_id:1586) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1587) (Token id:Id.Lit_Chars val:'\t\tgit rev-list HEAD |\n' span_id:1588) (Token id:Id.Lit_Chars val:'\t\tgit diff-tree --root --stdin |\n' span_id:1589) (Token id:Id.Lit_Chars val:'\t\tsed "s/$_x40/OBJID/g"\n' span_id:1590) (Token id:Id.Lit_Chars val:'\t} >actual &&\n' span_id:1591) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual &&\n' span_id:1592) (Token id: Id.Lit_Chars val: '\tgit show HEAD:postimage >actual.3 &&\n' span_id: 1593 ) (Token id:Id.Lit_Chars val:'\tgit show HEAD^:postimage >actual.2 &&\n' span_id:1594) (Token id: Id.Lit_Chars val: '\tgit show HEAD^^:postimage >actual.1 &&\n' span_id: 1595 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.1 actual.1 &&\n' span_id:1596) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.2 actual.2 &&\n' span_id:1597) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.3 actual.3\n' span_id:1598) ) } ) (C {(test_expect_success)} {(PIPE)} { (SQ (Token id: Id.Lit_Chars val: 'no hang for delta trying to read past end of preimage' span_id: 1607 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1611) (Token id:Id.Lit_Chars val:'\treinit_git &&\n' span_id:1612) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1613) (Token id:Id.Lit_Chars val:'\t\t# COPY 1\n' span_id:1614) (Token id:Id.Lit_Chars val:'\t\tprintf "SVNQ%b%b" "Q\\001\\001\\002Q" "\\001Q" |\n' span_id:1615) (Token id:Id.Lit_Chars val:'\t\tq_to_nul\n' span_id:1616) (Token id:Id.Lit_Chars val:'\t} >greedy.delta &&\n' span_id:1617) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1618) (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF &&\n' span_id:1619) (Token id:Id.Lit_Chars val:'\t\tSVN-fs-dump-format-version: 3\n' span_id:1620) (Token id:Id.Lit_Chars val:'\n' span_id:1621) (Token id:Id.Lit_Chars val:'\t\tRevision-number: 1\n' span_id:1622) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1623) (Token id:Id.Lit_Chars val:'\t\tContent-length: 10\n' span_id:1624) (Token id:Id.Lit_Chars val:'\n' span_id:1625) (Token id:Id.Lit_Chars val:'\t\tPROPS-END\n' span_id:1626) (Token id:Id.Lit_Chars val:'\n' span_id:1627) (Token id:Id.Lit_Chars val:'\t\tNode-path: bootstrap\n' span_id:1628) (Token id:Id.Lit_Chars val:'\t\tNode-kind: file\n' span_id:1629) (Token id:Id.Lit_Chars val:'\t\tNode-action: add\n' span_id:1630) (Token id:Id.Lit_Chars val:'\t\tText-delta: true\n' span_id:1631) (Token id:Id.Lit_Chars val:'\t\tProp-content-length: 10\n' span_id:1632) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1633) (Token id: Id.Lit_Chars val: '\t\techo Text-content-length: $(wc -c <greedy.delta) &&\n' span_id: 1634 ) (Token id: Id.Lit_Chars val: '\t\techo Content-length: $((10 + $(wc -c <greedy.delta))) &&\n' span_id: 1635 ) (Token id:Id.Lit_Chars val:'\t\techo &&\n' span_id:1636) (Token id:Id.Lit_Chars val:'\t\techo PROPS-END &&\n' span_id:1637) (Token id:Id.Lit_Chars val:'\t\tcat greedy.delta &&\n' span_id:1638) (Token id:Id.Lit_Chars val:'\t\techo\n' span_id:1639) (Token id:Id.Lit_Chars val:'\t} >greedydelta.dump &&\n' span_id:1640) (Token id: Id.Lit_Chars val: '\ttry_dump greedydelta.dump must_fail might_fail\n' span_id: 1641 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'set up svn repo' span_id:1648))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1652) (Token id:Id.Lit_Chars val:'\tsvnconf=$PWD/svnconf &&\n' span_id:1653) (Token id:Id.Lit_Chars val:'\tmkdir -p "$svnconf" &&\n' span_id:1654) (Token id:Id.Lit_Chars val:'\n' span_id:1655) (Token id:Id.Lit_Chars val:'\tif\n' span_id:1656) (Token id:Id.Lit_Chars val:'\t\tsvnadmin -h >/dev/null 2>&1 &&\n' span_id:1657) (Token id:Id.Lit_Chars val:'\t\tsvnadmin create simple-svn &&\n' span_id:1658) (Token id: Id.Lit_Chars val: '\t\tsvnadmin load simple-svn <"$TEST_DIRECTORY/t9135/svn.dump" &&\n' span_id: 1659 ) (Token id: Id.Lit_Chars val: '\t\tsvn export --config-dir "$svnconf" "file://$PWD/simple-svn" simple-svnco\n' span_id: 1660 ) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:1661) (Token id:Id.Lit_Chars val:'\t\ttest_set_prereq SVNREPO\n' span_id:1662) (Token id:Id.Lit_Chars val:'\tfi\n' span_id:1663) ) } ) (C {(test_expect_success)} {(SVNREPO) (Id.Lit_Comma ',') (PIPE)} {(SQ (Token id:Id.Lit_Chars val:t9135/svn.dump span_id:1674))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1678) (Token id:Id.Lit_Chars val:'\tmkdir -p simple-git &&\n' span_id:1679) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1680) (Token id:Id.Lit_Chars val:'\t\tcd simple-git &&\n' span_id:1681) (Token id:Id.Lit_Chars val:'\t\treinit_git &&\n' span_id:1682) (Token id: Id.Lit_Chars val: '\t\ttry_dump "$TEST_DIRECTORY/t9135/svn.dump"\n' span_id: 1683 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:1684) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1685) (Token id:Id.Lit_Chars val:'\t\tcd simple-svnco &&\n' span_id:1686) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:1687) (Token id:Id.Lit_Chars val:'\t\tgit add . &&\n' span_id:1688) (Token id:Id.Lit_Chars val:'\t\tgit fetch ../simple-git master &&\n' span_id:1689) (Token id:Id.Lit_Chars val:'\t\tgit diff --exit-code FETCH_HEAD\n' span_id:1690) (Token id:Id.Lit_Chars val:'\t)\n' span_id:1691) ) } ) (C {(test_done)}) ] )