(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: False ) ] ) 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 -1] ) (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 -1] ) ] 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:-1 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:-1 arg_word:{(tmp.actual)} spids:[128])] ) (AndOr children: [ (C {(test_cmp)} {(tmp.expect)} {(tmp.actual)}) (C {(rm)} {(-f)} {(tmp.expect)} {(tmp.actual)}) ] op_id: Op_DAmp ) ] 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: False ) ] ) 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)}) ] )