(command.CommandList children: [ (C {(.)} {(./test-lib.sh)}) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$NO_SVN_TESTS'))})] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:skip_all spids:[26]) op: Equal rhs: {(SQ <'skipping git svn tests, NO_SVN_TESTS defined'>)} spids: [26] ) ] spids: [26] ) (C {(test_done)}) ] spids: [16777215 23] ) ] spids: [16777215 34] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children:[(C {(test_have_prereq)} {(PERL)})] negated:T) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:skip_all spids:[48]) op: Equal rhs: {(SQ <'skipping git svn tests, perl not available'>)} spids: [48] ) ] spids: [48] ) (C {(test_done)}) ] spids: [16777215 45] ) ] spids: [16777215 56] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_DIR spids:[59]) op: Equal rhs: {($ VSub_Name '$PWD') (/.git)} spids: [59] ) ] spids: [59] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:GIT_SVN_DIR spids:[63]) op: Equal rhs: {($ VSub_Name '$GIT_DIR') (/svn/refs/remotes/git-svn)} spids: [63] ) ] spids: [63] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SVN_TREE spids:[67]) op: Equal rhs: {($ VSub_Name '$GIT_SVN_DIR') (/svn-tree)} spids: [67] ) ] spids: [67] ) (command.SimpleCommand words: [{(svn)}] redirects: [ (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)}) (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)}) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {($ VSub_QMark '$?')} {(-ne)} {(1)})] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:skip_all spids:[93]) op: Equal rhs: {(SQ <'skipping git svn tests, svn not found'>)} spids: [93] ) ] spids: [93] ) (C {(test_done)}) ] spids: [16777215 90] ) ] spids: [16777215 101] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:svnrepo spids:[104]) op: Equal rhs: {($ VSub_Name '$PWD') (/svnrepo)} spids: [104] ) ] spids: [104] ) (C {(export)} {(svnrepo)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:svnconf spids:[112]) op: Equal rhs: {($ VSub_Name '$PWD') (/svnconf)} spids: [112] ) ] spids: [112] ) (C {(export)} {(svnconf)}) (command.SimpleCommand words: [ {(perl)} {(-w)} {(-e)} { (DQ ('\n') ('use SVN::Core;\n') ('use SVN::Repos;\n') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ("SVN::Core::VERSION gt '1.1.0' or exit(42);\n") ('system(qw/svnadmin create --fs-type fsfs/, ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('ENV{svnrepo}) == 0 or exit(41);\n') ) } ] redirects: [ (redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(3)}) (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(4)}) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:x spids:[144]) op: Equal rhs: {($ VSub_QMark '$?')} spids: [144] ) ] spids: [144] ) (command.If arms: [ (if_arm cond: [(C {(test)} {($ VSub_Name '$x')} {(-ne)} {(0)})] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_Name '$x')} {(-eq)} {(42)}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:skip_all spids:[174]) op: Equal rhs: {(SQ <'Perl SVN libraries must be >= 1.1.0'>)} spids: [174] ) ] spids: [174] ) ] spids: [16777215 171] ) (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_Name '$x')} {(-eq)} {(41)}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:skip_all spids:[194]) op: Equal rhs: {(SQ <'svnadmin failed to create fsfs repository'>)} spids: [194] ) ] spids: [194] ) ] spids: [180 191] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:skip_all spids:[203]) op: Equal rhs: {(SQ <'Perl SVN libraries not found or unusable'>)} spids: [203] ) ] spids: [203] ) ] spids: [200 209] ) (C {(test_done)}) ] spids: [16777215 157] ) ] spids: [16777215 214] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rawsvnrepo spids:[217]) op: Equal rhs: {(DQ ($ VSub_Name '$svnrepo'))} spids: [217] ) ] spids: [217] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:svnrepo spids:[222]) op: Equal rhs: {(DQ ('file://') ($ VSub_Name '$svnrepo'))} spids: [222] ) ] spids: [222] ) (command.FuncDef name: poke body: (command.BraceGroup children: [(C {(test-chmtime)} {(Lit_Other '+') (1)} {(DQ ($ VSub_Number '$1'))})] spids: [233] ) spids: [229 232] ) (command.FuncDef name: svn_cmd body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$svnconf'))} {(Lit_Other ']')}) (C {(mkdir)} {(DQ ($ VSub_Name '$svnconf'))}) ] ) (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:orig_svncmd spids:[284]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [284] ) ] spids: [284] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$orig_svncmd'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(svn)}) (command.ControlFlow token:<ControlFlow_Return return>)] spids: [16777215 306] ) ] spids: [16777215 315] ) (C {(svn)} {(DQ ($ VSub_Name '$orig_svncmd'))} {(--config-dir)} {(DQ ($ VSub_Name '$svnconf'))} {(DQ ($ VSub_At '$@'))} ) ] spids: [262] ) spids: [257 261] ) (command.FuncDef name: maybe_start_httpd body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:loc spids:[345]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:{(svn)}) spids: [346 350] ) } spids: [345] ) ] spids: [345] ) (C {(test_tristate)} {(GIT_SVN_TEST_HTTPD)}) (command.Case to_match: {($ VSub_Name '$GIT_SVN_TEST_HTTPD')} arms: [ (case_arm pat_list: [{(true)}] action: [ (C {(.)} {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/lib-httpd.sh)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:LIB_HTTPD_SVN spids:[378]) op: Equal rhs: {(DQ ($ VSub_Name '$loc'))} spids: [378] ) ] spids: [378] ) (C {(start_httpd)}) ] spids: [366 367 387 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.FuncDef name: stop_httpd body: (command.BraceGroup children: [(C {(Lit_Other ':')} {(noop)})] spids: [399] ) spids: [394 398] ) ] spids: [390 391 410 16777215] ) ] spids: [359 363 413] ) ] spids: [342] ) spids: [337 341] ) (command.FuncDef name: convert_to_rev_db body: (command.BraceGroup children: [ (command.SimpleCommand words: [{(perl)} {(-w)} {(--)} {(-)} {(DQ ($ VSub_At '$@'))}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\E'>) (OF)} here_end_span_id: 463 stdin_parts: [ ('use strict;\n') ('@ARGV == 2 or die "usage: convert_to_rev_db <input> <output>";\n') ('open my $wr, \'+>\', $ARGV[1] or die "$!: couldn\'t open: $ARGV[1]";\n') ('open my $rd, \'<\', $ARGV[0] or die "$!: couldn\'t open: $ARGV[0]";\n') ('my $size = (stat($rd))[7];\n') ('($size % 24) == 0 or die "Inconsistent size: $size";\n') ('while (sysread($rd, my $buf, 24) == 24) {\n') ("\tmy ($r, $c) = unpack('NH40', $buf);\n") ('\tmy $offset = $r * 41;\n') ('\tseek $wr, 0, 2 or die $!;\n') ('\tmy $pos = tell $wr;\n') ('\tif ($pos < $offset) {\n') ('\t\tfor (1 .. (($offset - $pos) / 41)) {\n') ('\t\t\tprint $wr ((\'0\' x 40),"\\n") or die $!;\n') ('\t\t}\n') ('\t}\n') ('\tseek $wr, $offset, 0 or die $!;\n') ('\tprint $wr $c,"\\n" or die $!;\n') ('}\n') ('close $wr or die $!;\n') ('close $rd or die $!;\n') ] ) ] ) ] spids: [423] ) spids: [418 422] ) (command.FuncDef name: require_svnserve body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$SVNSERVE_PORT'))})] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:skip_all spids:[489]) op: Equal rhs: {(SQ <'skipping svnserve test. (set $SVNSERVE_PORT to enable)'>)} spids: [489] ) ] spids: [489] ) (C {(test_done)}) ] spids: [16777215 486] ) ] spids: [16777215 498] ) ] spids: [472] ) spids: [467 471] ) (command.FuncDef name: start_svnserve body: (command.BraceGroup children: [ (command.Sentence child: (C {(svnserve)} {(--listen-port)} {($ VSub_Name '$SVNSERVE_PORT')} {(--root)} {(DQ ($ VSub_Name '$rawsvnrepo'))} {(--listen-once)} {(--listen-host)} {(127.0.0.1)} ) terminator: <Op_Amp '&'> ) ] spids: [508] ) spids: [503 507] ) (command.FuncDef name: prepare_a_utf8_locale body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:a_utf8_locale spids:[548]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(locale)} {(-a)}) (C {(sed)} {(-n)} {(SQ <'/\\.[uU][tT][fF]-*8$/{\n'> <'\tp\n'> <'\tq\n'> <'}'>)} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [549 566] ) } spids: [548] ) ] spids: [548] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$a_utf8_locale'))})] action: [(C {(test_set_prereq)} {(UTF8)})] spids: [16777215 580] ) ] else_action: [(C {(say)} {(DQ ('# UTF-8 locale not available, some tests are skipped'))})] spids: [588 598] ) ] spids: [545] ) spids: [540 544] ) ] )