(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'git svn info'>)} spids: [10] ) ] spids: [10] ) (C {(.)} {(./lib-git-svn.sh)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:v) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(svn_cmd)} {(--version)}) (C {(sed)} {(-n)} {(-e)} {(SQ <'s/^svn, version \\(1\\.[0-9]*\\.[0-9]*\\).*$/\\1/p'>)} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [28 44] ) } spids: [27] ) ] spids: [27] ) (Case to_match: {($ VSub_Name '$v')} arms: [ (case_arm pat_list: [{(1.) (Lit_Other '[') (456) (Lit_Other ']') (.) (Lit_Other '*')}] spids: [52 58 61 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: { (DQ ('skipping svn-info test (SVN version: ') ($ VSub_Name '$v') (' not supported)') ) } spids: [67] ) ] spids: [67] ) (C {(test_done)}) ] spids: [63 64 78 16777215] ) ] spids: [46 50 80] ) (FuncDef name: test_cmp_info body: (BraceGroup children: [ (SimpleCommand words: [{(sed)} {(-e)} {(SQ <'/^Text Last Updated:/d'>)} {(DQ ($ VSub_Number '$1'))}] redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(tmp.expect)} spids:[112])] ) (SimpleCommand words: [{(sed)} {(-e)} {(SQ <'/^Text Last Updated:/d'>)} {(DQ ($ VSub_Number '$2'))}] redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(tmp.actual)} spids:[128])] ) (AndOr ops: [Op_DAmp] children: [ (C {(test_cmp)} {(tmp.expect)} {(tmp.actual)}) (C {(rm)} {(-f)} {(tmp.expect)} {(tmp.actual)}) ] ) ] spids: [97] ) spids: [92 96] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:quoted_svnrepo) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$svnrepo')}) (C {(sed)} {(SQ <'s/ /%20/'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [154 166] ) ) } spids: [152] ) ] spids: [152] ) (C {(test_expect_success)} {(SQ <'setup repository and import'>)} { (SQ <'\n'> <'\tmkdir info &&\n'> <'\t(\n'> <'\t\tcd info &&\n'> <'\t\techo FIRST >A &&\n'> <'\t\techo one >file &&\n'> <'\t\tln -s file symlink-file &&\n'> <'\t\tmkdir directory &&\n'> <'\t\ttouch directory/.placeholder &&\n'> <'\t\tln -s directory symlink-directory &&\n'> <'\t\tsvn_cmd import -m "initial" . "$svnrepo"\n'> <'\t) &&\n'> <'\tsvn_cmd co "$svnrepo" svnwc &&\n'> <'\t(\n'> <'\t\tcd svnwc &&\n'> <'\t\techo foo >foo &&\n'> <'\t\tsvn_cmd add foo &&\n'> <'\t\tsvn_cmd commit -m "change outside directory" &&\n'> <'\t\tsvn_cmd update\n'> <'\t) &&\n'> <'\tmkdir gitwc &&\n'> <'\t(\n'> <'\t\tcd gitwc &&\n'> <'\t\tgit svn init "$svnrepo" &&\n'> <'\t\tgit svn fetch\n'> <'\t)\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <info>)} { (DQ ('\n') ('\t(cd svnwc; svn info) > expected.info &&\n') ('\t(cd gitwc; git svn info) > actual.info &&\n') ('\ttest_cmp_info expected.info actual.info\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url'>)} {(SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url)" = "$quoted_svnrepo"\n'> <'\t'>)} ) (C {(test_expect_success)} {(SQ <'info .'>)} { (DQ ('\n') ('\t(cd svnwc; svn info .) > expected.info-dot &&\n') ('\t(cd gitwc; git svn info .) > actual.info-dot &&\n') ('\ttest_cmp_info expected.info-dot actual.info-dot\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info $(pwd)'>)} { (SQ <'\n'> <'\t(cd svnwc; svn info "$(pwd)") >expected.info-pwd &&\n'> <'\t(cd gitwc; git svn info "$(pwd)") >actual.info-pwd &&\n'> <'\tgrep -v ^Path: <expected.info-pwd >expected.info-np &&\n'> <'\tgrep -v ^Path: <actual.info-pwd >actual.info-np &&\n'> <'\ttest_cmp_info expected.info-np actual.info-np &&\n'> <'\ttest "$(sed -ne \\"/^Path:/ s!/svnwc!!\\" <expected.info-pwd)" = \\\n'> <'\t "$(sed -ne \\"/^Path:/ s!/gitwc!!\\" <actual.info-pwd)"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info $(pwd)/../___wc'>)} { (SQ <'\n'> <'\t(cd svnwc; svn info "$(pwd)/../svnwc") >expected.info-pwd &&\n'> <'\t(cd gitwc; git svn info "$(pwd)/../gitwc") >actual.info-pwd &&\n'> <'\tgrep -v ^Path: <expected.info-pwd >expected.info-np &&\n'> <'\tgrep -v ^Path: <actual.info-pwd >actual.info-np &&\n'> <'\ttest_cmp_info expected.info-np actual.info-np &&\n'> <'\ttest "$(sed -ne \\"/^Path:/ s!/svnwc!!\\" <expected.info-pwd)" = \\\n'> <'\t "$(sed -ne \\"/^Path:/ s!/gitwc!!\\" <actual.info-pwd)"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info $(pwd)/../___wc//file'>)} { (SQ <'\n'> <'\t(cd svnwc; svn info "$(pwd)/../svnwc//file") >expected.info-pwd &&\n'> <'\t(cd gitwc; git svn info "$(pwd)/../gitwc//file") >actual.info-pwd &&\n'> <'\tgrep -v ^Path: <expected.info-pwd >expected.info-np &&\n'> <'\tgrep -v ^Path: <actual.info-pwd >actual.info-np &&\n'> <'\ttest_cmp_info expected.info-np actual.info-np &&\n'> <'\ttest "$(sed -ne \\"/^Path:/ s!/svnwc!!\\" <expected.info-pwd)" = \\\n'> <'\t "$(sed -ne \\"/^Path:/ s!/gitwc!!\\" <actual.info-pwd)"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info --url .'>)} {(SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url .)" = "$quoted_svnrepo"\n'> <'\t'>)} ) (C {(test_expect_success)} {(SQ <'info file'>)} { (DQ ('\n') ('\t(cd svnwc; svn info file) > expected.info-file &&\n') ('\t(cd gitwc; git svn info file) > actual.info-file &&\n') ('\ttest_cmp_info expected.info-file actual.info-file\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url file'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url file)" = "$quoted_svnrepo/file"\n'> <'\t'>) } ) (C {(test_expect_success)} {(SQ <'info directory'>)} { (DQ ('\n') ('\t(cd svnwc; svn info directory) > expected.info-directory &&\n') ('\t(cd gitwc; git svn info directory) > actual.info-directory &&\n') ('\ttest_cmp_info expected.info-directory actual.info-directory\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info inside directory'>)} { (DQ ('\n') ('\t(cd svnwc/directory; svn info) > expected.info-inside-directory &&\n') ('\t(cd gitwc/directory; git svn info) > actual.info-inside-directory &&\n') ('\ttest_cmp_info expected.info-inside-directory actual.info-inside-directory\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url directory'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url directory)" = "$quoted_svnrepo/directory"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info symlink-file'>)} { (DQ ('\n') ('\t(cd svnwc; svn info symlink-file) > expected.info-symlink-file &&\n') ('\t(cd gitwc; git svn info symlink-file) > actual.info-symlink-file &&\n') ('\ttest_cmp_info expected.info-symlink-file actual.info-symlink-file\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url symlink-file'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url symlink-file)" \\\n'> <'\t = "$quoted_svnrepo/symlink-file"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info symlink-directory'>)} { (DQ ('\n') ('\t(cd svnwc; svn info symlink-directory) ') ('\t\t> expected.info-symlink-directory &&\n') ('\t(cd gitwc; git svn info symlink-directory) ') ('\t\t> actual.info-symlink-directory &&\n') ('\ttest_cmp_info expected.info-symlink-directory actual.info-symlink-directory\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url symlink-directory'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url symlink-directory)" \\\n'> <'\t = "$quoted_svnrepo/symlink-directory"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info added-file'>)} { (DQ ('\n') ('\techo two > gitwc/added-file &&\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tgit add added-file\n') ('\t) &&\n') ('\tcp gitwc/added-file svnwc/added-file &&\n') ('\t(\n') ('\t\tcd svnwc &&\n') ('\t\tsvn_cmd add added-file > /dev/null\n') ('\t) &&\n') ('\t(cd svnwc; svn info added-file) > expected.info-added-file &&\n') ('\t(cd gitwc; git svn info added-file) > actual.info-added-file &&\n') ('\ttest_cmp_info expected.info-added-file actual.info-added-file\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url added-file'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url added-file)" \\\n'> <'\t = "$quoted_svnrepo/added-file"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info added-directory'>)} { (DQ ('\n') ('\tmkdir gitwc/added-directory svnwc/added-directory &&\n') ('\ttouch gitwc/added-directory/.placeholder &&\n') ('\t(\n') ('\t\tcd svnwc &&\n') ('\t\tsvn_cmd add added-directory > /dev/null\n') ('\t) &&\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tgit add added-directory\n') ('\t) &&\n') ('\t(cd svnwc; svn info added-directory) ') ('\t\t> expected.info-added-directory &&\n') ('\t(cd gitwc; git svn info added-directory) ') ('\t\t> actual.info-added-directory &&\n') ('\ttest_cmp_info expected.info-added-directory actual.info-added-directory\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url added-directory'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url added-directory)" \\\n'> <'\t = "$quoted_svnrepo/added-directory"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info added-symlink-file'>)} { (DQ ('\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tln -s added-file added-symlink-file &&\n') ('\t\tgit add added-symlink-file\n') ('\t) &&\n') ('\t(\n') ('\t\tcd svnwc &&\n') ('\t\tln -s added-file added-symlink-file &&\n') ('\t\tsvn_cmd add added-symlink-file > /dev/null\n') ('\t) &&\n') ('\t(cd svnwc; svn info added-symlink-file) ') ('\t\t> expected.info-added-symlink-file &&\n') ('\t(cd gitwc; git svn info added-symlink-file) ') ('\t\t> actual.info-added-symlink-file &&\n') ('\ttest_cmp_info expected.info-added-symlink-file ') ('\t\tactual.info-added-symlink-file\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url added-symlink-file'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url added-symlink-file)" \\\n'> <'\t = "$quoted_svnrepo/added-symlink-file"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info added-symlink-directory'>)} { (DQ ('\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tln -s added-directory added-symlink-directory &&\n') ('\t\tgit add added-symlink-directory\n') ('\t) &&\n') ('\t(\n') ('\t\tcd svnwc &&\n') ('\t\tln -s added-directory added-symlink-directory &&\n') ('\t\tsvn_cmd add added-symlink-directory > /dev/null\n') ('\t) &&\n') ('\t(cd svnwc; svn info added-symlink-directory) ') ('\t\t> expected.info-added-symlink-directory &&\n') ('\t(cd gitwc; git svn info added-symlink-directory) ') ('\t\t> actual.info-added-symlink-directory &&\n') ('\ttest_cmp_info expected.info-added-symlink-directory ') ('\t\tactual.info-added-symlink-directory\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url added-symlink-directory'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url added-symlink-directory)" \\\n'> <'\t = "$quoted_svnrepo/added-symlink-directory"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info deleted-file'>)} { (DQ ('\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tgit rm -f file > /dev/null\n') ('\t) &&\n') ('\t(\n') ('\t\tcd svnwc &&\n') ('\t\tsvn_cmd rm --force file > /dev/null\n') ('\t) &&\n') ('\t(cd svnwc; svn info file) >expected.info-deleted-file &&\n') ('\t(cd gitwc; git svn info file) >actual.info-deleted-file &&\n') ('\ttest_cmp_info expected.info-deleted-file actual.info-deleted-file\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url file (deleted)'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url file)" \\\n'> <'\t = "$quoted_svnrepo/file"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info deleted-directory'>)} { (DQ ('\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tgit rm -r -f directory > /dev/null\n') ('\t) &&\n') ('\t(\n') ('\t\tcd svnwc &&\n') ('\t\tsvn_cmd rm --force directory > /dev/null\n') ('\t) &&\n') ('\t(cd svnwc; svn info directory) >expected.info-deleted-directory &&\n') ('\t(cd gitwc; git svn info directory) >actual.info-deleted-directory &&\n') ('\ttest_cmp_info expected.info-deleted-directory actual.info-deleted-directory\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url directory (deleted)'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url directory)" \\\n'> <'\t = "$quoted_svnrepo/directory"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info deleted-symlink-file'>)} { (DQ ('\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tgit rm -f symlink-file > /dev/null\n') ('\t) &&\n') ('\t(\n') ('\t\tcd svnwc &&\n') ('\t\tsvn_cmd rm --force symlink-file > /dev/null\n') ('\t) &&\n') ('\t(cd svnwc; svn info symlink-file) >expected.info-deleted-symlink-file &&\n') ('\t(cd gitwc; git svn info symlink-file) >actual.info-deleted-symlink-file &&\n') ('\ttest_cmp_info expected.info-deleted-symlink-file actual.info-deleted-symlink-file\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url symlink-file (deleted)'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url symlink-file)" \\\n'> <'\t = "$quoted_svnrepo/symlink-file"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info deleted-symlink-directory'>)} { (DQ ('\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tgit rm -f symlink-directory > /dev/null\n') ('\t) &&\n') ('\t(\n') ('\t\tcd svnwc &&\n') ('\t\tsvn_cmd rm --force symlink-directory > /dev/null\n') ('\t) &&\n') ( '\t(cd svnwc; svn info symlink-directory) >expected.info-deleted-symlink-directory &&\n' ) ('\t(cd gitwc; git svn info symlink-directory) >actual.info-deleted-symlink-directory &&\n') ( '\ttest_cmp_info expected.info-deleted-symlink-directory actual.info-deleted-symlink-directory\n' ) ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url symlink-directory (deleted)'>)} { (SQ <'\n'> <'\ttest "$(cd gitwc; git svn info --url symlink-directory)" \\\n'> <'\t = "$quoted_svnrepo/symlink-directory"\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info unknown-file'>)} { (DQ ('\n') ('\techo two > gitwc/unknown-file &&\n') ('\t(cd gitwc; test_must_fail git svn info unknown-file) ') ('\t\t 2> actual.info-unknown-file &&\n') ('\tgrep unknown-file actual.info-unknown-file\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url unknown-file'>)} { (SQ <'\n'> <'\techo two > gitwc/unknown-file &&\n'> <'\t(cd gitwc; test_must_fail git svn info --url unknown-file) \\\n'> <'\t\t 2> actual.info-url-unknown-file &&\n'> <'\tgrep unknown-file actual.info-url-unknown-file\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info unknown-directory'>)} { (DQ ('\n') ('\tmkdir gitwc/unknown-directory svnwc/unknown-directory &&\n') ('\t(cd gitwc; test_must_fail git svn info unknown-directory) ') ('\t\t 2> actual.info-unknown-directory &&\n') ('\tgrep unknown-directory actual.info-unknown-directory\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url unknown-directory'>)} { (SQ <'\n'> <'\t(cd gitwc; test_must_fail git svn info --url unknown-directory) \\\n'> <'\t\t 2> actual.info-url-unknown-directory &&\n'> <'\tgrep unknown-directory actual.info-url-unknown-directory\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info unknown-symlink-file'>)} { (DQ ('\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tln -s unknown-file unknown-symlink-file\n') ('\t) &&\n') ('\t(cd gitwc; test_must_fail git svn info unknown-symlink-file) ') ('\t\t 2> actual.info-unknown-symlink-file &&\n') ('\tgrep unknown-symlink-file actual.info-unknown-symlink-file\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url unknown-symlink-file'>)} { (SQ <'\n'> <'\t(cd gitwc; test_must_fail git svn info --url unknown-symlink-file) \\\n'> <'\t\t 2> actual.info-url-unknown-symlink-file &&\n'> <'\tgrep unknown-symlink-file actual.info-url-unknown-symlink-file\n'> <'\t'> ) } ) (C {(test_expect_success)} {(SQ <'info unknown-symlink-directory'>)} { (DQ ('\n') ('\t(\n') ('\t\tcd gitwc &&\n') ('\t\tln -s unknown-directory unknown-symlink-directory\n') ('\t) &&\n') ('\t(cd gitwc; test_must_fail git svn info unknown-symlink-directory) ') ('\t\t 2> actual.info-unknown-symlink-directory &&\n') ('\tgrep unknown-symlink-directory actual.info-unknown-symlink-directory\n') ('\t') ) } ) (C {(test_expect_success)} {(SQ <'info --url unknown-symlink-directory'>)} { (SQ <'\n'> <'\t(cd gitwc; test_must_fail git svn info --url unknown-symlink-directory) \\\n'> <'\t\t 2> actual.info-url-unknown-symlink-directory &&\n'> <'\tgrep unknown-symlink-directory actual.info-url-unknown-symlink-directory\n'> <'\t'> ) } ) (C {(test_done)}) ] )