#!/bin/sh # # Copyright (c) 2007 David D. Kilzer global test_description := ''git svn info'' source ./lib-git-svn.sh # Tested with: svn, version 1.4.4 (r25188) # Tested with: svn, version 1.6.[12345689] global v := $[svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p] matchstr $v { 1.[456].* { } * { global skip_all := ""skipping svn-info test (SVN version: $v not supported)"" test_done } } # On the "Text Last Updated" line, "git svn info" does not return the # same value as "svn info" (i.e. the commit timestamp that touched the # path most recently); do not expect that field to match. proc test_cmp_info { sed -e '/^Text Last Updated:/d' $1 >tmp.expect sed -e '/^Text Last Updated:/d' $2 >tmp.actual test_cmp tmp.expect tmp.actual && rm -f tmp.expect tmp.actual } global quoted_svnrepo := $[echo $svnrepo | sed 's/ /%20/] test_expect_success 'setup repository and import' ' mkdir info && ( cd info && echo FIRST >A && echo one >file && ln -s file symlink-file && mkdir directory && touch directory/.placeholder && ln -s directory symlink-directory && svn_cmd import -m "initial" . "$svnrepo" ) && svn_cmd co "$svnrepo" svnwc && ( cd svnwc && echo foo >foo && svn_cmd add foo && svn_cmd commit -m "change outside directory" && svn_cmd update ) && mkdir gitwc && ( cd gitwc && git svn init "$svnrepo" && git svn fetch ) ' test_expect_success 'info' " (cd svnwc; svn info) > expected.info && (cd gitwc; git svn info) > actual.info && test_cmp_info expected.info actual.info " test_expect_success 'info --url' ' test "$(cd gitwc; git svn info --url)" = "$quoted_svnrepo" ' test_expect_success 'info .' " (cd svnwc; svn info .) > expected.info-dot && (cd gitwc; git svn info .) > actual.info-dot && test_cmp_info expected.info-dot actual.info-dot " test_expect_success 'info $(pwd)' ' (cd svnwc; svn info "$(pwd)") >expected.info-pwd && (cd gitwc; git svn info "$(pwd)") >actual.info-pwd && grep -v ^Path: expected.info-np && grep -v ^Path: actual.info-np && test_cmp_info expected.info-np actual.info-np && test "$(sed -ne \"/^Path:/ s!/svnwc!!\" expected.info-pwd && (cd gitwc; git svn info "$(pwd)/../gitwc") >actual.info-pwd && grep -v ^Path: expected.info-np && grep -v ^Path: actual.info-np && test_cmp_info expected.info-np actual.info-np && test "$(sed -ne \"/^Path:/ s!/svnwc!!\" expected.info-pwd && (cd gitwc; git svn info "$(pwd)/../gitwc//file") >actual.info-pwd && grep -v ^Path: expected.info-np && grep -v ^Path: actual.info-np && test_cmp_info expected.info-np actual.info-np && test "$(sed -ne \"/^Path:/ s!/svnwc!!\" expected.info-file && (cd gitwc; git svn info file) > actual.info-file && test_cmp_info expected.info-file actual.info-file " test_expect_success 'info --url file' ' test "$(cd gitwc; git svn info --url file)" = "$quoted_svnrepo/file" ' test_expect_success 'info directory' " (cd svnwc; svn info directory) > expected.info-directory && (cd gitwc; git svn info directory) > actual.info-directory && test_cmp_info expected.info-directory actual.info-directory " test_expect_success 'info inside directory' " (cd svnwc/directory; svn info) > expected.info-inside-directory && (cd gitwc/directory; git svn info) > actual.info-inside-directory && test_cmp_info expected.info-inside-directory actual.info-inside-directory " test_expect_success 'info --url directory' ' test "$(cd gitwc; git svn info --url directory)" = "$quoted_svnrepo/directory" ' test_expect_success 'info symlink-file' " (cd svnwc; svn info symlink-file) > expected.info-symlink-file && (cd gitwc; git svn info symlink-file) > actual.info-symlink-file && test_cmp_info expected.info-symlink-file actual.info-symlink-file " test_expect_success 'info --url symlink-file' ' test "$(cd gitwc; git svn info --url symlink-file)" \ = "$quoted_svnrepo/symlink-file" ' test_expect_success 'info symlink-directory' " (cd svnwc; svn info symlink-directory) \ > expected.info-symlink-directory && (cd gitwc; git svn info symlink-directory) \ > actual.info-symlink-directory && test_cmp_info expected.info-symlink-directory actual.info-symlink-directory " test_expect_success 'info --url symlink-directory' ' test "$(cd gitwc; git svn info --url symlink-directory)" \ = "$quoted_svnrepo/symlink-directory" ' test_expect_success 'info added-file' " echo two > gitwc/added-file && ( cd gitwc && git add added-file ) && cp gitwc/added-file svnwc/added-file && ( cd svnwc && svn_cmd add added-file > /dev/null ) && (cd svnwc; svn info added-file) > expected.info-added-file && (cd gitwc; git svn info added-file) > actual.info-added-file && test_cmp_info expected.info-added-file actual.info-added-file " test_expect_success 'info --url added-file' ' test "$(cd gitwc; git svn info --url added-file)" \ = "$quoted_svnrepo/added-file" ' test_expect_success 'info added-directory' " mkdir gitwc/added-directory svnwc/added-directory && touch gitwc/added-directory/.placeholder && ( cd svnwc && svn_cmd add added-directory > /dev/null ) && ( cd gitwc && git add added-directory ) && (cd svnwc; svn info added-directory) \ > expected.info-added-directory && (cd gitwc; git svn info added-directory) \ > actual.info-added-directory && test_cmp_info expected.info-added-directory actual.info-added-directory " test_expect_success 'info --url added-directory' ' test "$(cd gitwc; git svn info --url added-directory)" \ = "$quoted_svnrepo/added-directory" ' test_expect_success 'info added-symlink-file' " ( cd gitwc && ln -s added-file added-symlink-file && git add added-symlink-file ) && ( cd svnwc && ln -s added-file added-symlink-file && svn_cmd add added-symlink-file > /dev/null ) && (cd svnwc; svn info added-symlink-file) \ > expected.info-added-symlink-file && (cd gitwc; git svn info added-symlink-file) \ > actual.info-added-symlink-file && test_cmp_info expected.info-added-symlink-file \ actual.info-added-symlink-file " test_expect_success 'info --url added-symlink-file' ' test "$(cd gitwc; git svn info --url added-symlink-file)" \ = "$quoted_svnrepo/added-symlink-file" ' test_expect_success 'info added-symlink-directory' " ( cd gitwc && ln -s added-directory added-symlink-directory && git add added-symlink-directory ) && ( cd svnwc && ln -s added-directory added-symlink-directory && svn_cmd add added-symlink-directory > /dev/null ) && (cd svnwc; svn info added-symlink-directory) \ > expected.info-added-symlink-directory && (cd gitwc; git svn info added-symlink-directory) \ > actual.info-added-symlink-directory && test_cmp_info expected.info-added-symlink-directory \ actual.info-added-symlink-directory " test_expect_success 'info --url added-symlink-directory' ' test "$(cd gitwc; git svn info --url added-symlink-directory)" \ = "$quoted_svnrepo/added-symlink-directory" ' test_expect_success 'info deleted-file' " ( cd gitwc && git rm -f file > /dev/null ) && ( cd svnwc && svn_cmd rm --force file > /dev/null ) && (cd svnwc; svn info file) >expected.info-deleted-file && (cd gitwc; git svn info file) >actual.info-deleted-file && test_cmp_info expected.info-deleted-file actual.info-deleted-file " test_expect_success 'info --url file (deleted)' ' test "$(cd gitwc; git svn info --url file)" \ = "$quoted_svnrepo/file" ' test_expect_success 'info deleted-directory' " ( cd gitwc && git rm -r -f directory > /dev/null ) && ( cd svnwc && svn_cmd rm --force directory > /dev/null ) && (cd svnwc; svn info directory) >expected.info-deleted-directory && (cd gitwc; git svn info directory) >actual.info-deleted-directory && test_cmp_info expected.info-deleted-directory actual.info-deleted-directory " test_expect_success 'info --url directory (deleted)' ' test "$(cd gitwc; git svn info --url directory)" \ = "$quoted_svnrepo/directory" ' test_expect_success 'info deleted-symlink-file' " ( cd gitwc && git rm -f symlink-file > /dev/null ) && ( cd svnwc && svn_cmd rm --force symlink-file > /dev/null ) && (cd svnwc; svn info symlink-file) >expected.info-deleted-symlink-file && (cd gitwc; git svn info symlink-file) >actual.info-deleted-symlink-file && test_cmp_info expected.info-deleted-symlink-file actual.info-deleted-symlink-file " test_expect_success 'info --url symlink-file (deleted)' ' test "$(cd gitwc; git svn info --url symlink-file)" \ = "$quoted_svnrepo/symlink-file" ' test_expect_success 'info deleted-symlink-directory' " ( cd gitwc && git rm -f symlink-directory > /dev/null ) && ( cd svnwc && svn_cmd rm --force symlink-directory > /dev/null ) && (cd svnwc; svn info symlink-directory) >expected.info-deleted-symlink-directory && (cd gitwc; git svn info symlink-directory) >actual.info-deleted-symlink-directory && test_cmp_info expected.info-deleted-symlink-directory actual.info-deleted-symlink-directory " test_expect_success 'info --url symlink-directory (deleted)' ' test "$(cd gitwc; git svn info --url symlink-directory)" \ = "$quoted_svnrepo/symlink-directory" ' # NOTE: git does not have the concept of replaced objects, # so we can't test for files in that state. test_expect_success 'info unknown-file' " echo two > gitwc/unknown-file && (cd gitwc; test_must_fail git svn info unknown-file) \ 2> actual.info-unknown-file && grep unknown-file actual.info-unknown-file " test_expect_success 'info --url unknown-file' ' echo two > gitwc/unknown-file && (cd gitwc; test_must_fail git svn info --url unknown-file) \ 2> actual.info-url-unknown-file && grep unknown-file actual.info-url-unknown-file ' test_expect_success 'info unknown-directory' " mkdir gitwc/unknown-directory svnwc/unknown-directory && (cd gitwc; test_must_fail git svn info unknown-directory) \ 2> actual.info-unknown-directory && grep unknown-directory actual.info-unknown-directory " test_expect_success 'info --url unknown-directory' ' (cd gitwc; test_must_fail git svn info --url unknown-directory) \ 2> actual.info-url-unknown-directory && grep unknown-directory actual.info-url-unknown-directory ' test_expect_success 'info unknown-symlink-file' " ( cd gitwc && ln -s unknown-file unknown-symlink-file ) && (cd gitwc; test_must_fail git svn info unknown-symlink-file) \ 2> actual.info-unknown-symlink-file && grep unknown-symlink-file actual.info-unknown-symlink-file " test_expect_success 'info --url unknown-symlink-file' ' (cd gitwc; test_must_fail git svn info --url unknown-symlink-file) \ 2> actual.info-url-unknown-symlink-file && grep unknown-symlink-file actual.info-url-unknown-symlink-file ' test_expect_success 'info unknown-symlink-directory' " ( cd gitwc && ln -s unknown-directory unknown-symlink-directory ) && (cd gitwc; test_must_fail git svn info unknown-symlink-directory) \ 2> actual.info-unknown-symlink-directory && grep unknown-symlink-directory actual.info-unknown-symlink-directory " test_expect_success 'info --url unknown-symlink-directory' ' (cd gitwc; test_must_fail git svn info --url unknown-symlink-directory) \ 2> actual.info-url-unknown-symlink-directory && grep unknown-symlink-directory actual.info-url-unknown-symlink-directory ' test_done (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: 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: 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 )} { (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-np &&\n"> <"\tgrep -v ^Path: actual.info-np &&\n"> <"\ttest_cmp_info expected.info-np actual.info-np &&\n"> <"\ttest \"$(sed -ne \\\"/^Path:/ s!/svnwc!!\\\" <"\t \"$(sed -ne \\\"/^Path:/ s!/gitwc!!\\\" <"\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-np &&\n"> <"\tgrep -v ^Path: actual.info-np &&\n"> <"\ttest_cmp_info expected.info-np actual.info-np &&\n"> <"\ttest \"$(sed -ne \\\"/^Path:/ s!/svnwc!!\\\" <"\t \"$(sed -ne \\\"/^Path:/ s!/gitwc!!\\\" <"\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-np &&\n"> <"\tgrep -v ^Path: actual.info-np &&\n"> <"\ttest_cmp_info expected.info-np actual.info-np &&\n"> <"\ttest \"$(sed -ne \\\"/^Path:/ s!/svnwc!!\\\" <"\t \"$(sed -ne \\\"/^Path:/ s!/gitwc!!\\\" <"\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)}) ] )