Git fork
at reftables-rust 149 lines 3.7 kB view raw
1#!/bin/sh 2# 3# Copyright (c) 2013 Paul Walmsley - based on t9134 by Vitaly Shukela 4# 5 6test_description='git svn property tests' 7. ./lib-git-svn.sh 8 9test_expect_success 'setup test repository' ' 10 svn_cmd co "$svnrepo" s && 11 ( 12 cd s && 13 mkdir qqq www xxx && 14 echo test_qqq > qqq/test_qqq.txt && 15 echo test_www > www/test_www.txt && 16 echo test_xxx > xxx/test_xxx.txt && 17 svn_cmd add qqq && 18 svn_cmd add www && 19 svn_cmd add xxx && 20 svn_cmd commit -m "create some files" && 21 svn_cmd up && 22 echo hi >> www/test_www.txt && 23 svn_cmd commit -m "modify www/test_www.txt" && 24 svn_cmd up 25 ) 26' 27 28test_expect_success 'clone an SVN repository with filter to include qqq directory' ' 29 git svn clone --include-paths="qqq" "$svnrepo" g && 30 echo test_qqq > expect && 31 for i in g/*/*.txt; do cat $i >> expect2 || return 1; done && 32 test_cmp expect expect2 33' 34 35 36test_expect_success 'init+fetch an SVN repository with included qqq directory' ' 37 git svn init "$svnrepo" c && 38 ( cd c && git svn fetch --include-paths="qqq" ) && 39 rm expect2 && 40 echo test_qqq > expect && 41 for i in c/*/*.txt; do cat $i >> expect2 || return 1; done && 42 test_cmp expect expect2 43' 44 45test_expect_success 'verify include-paths config saved by clone' ' 46 ( 47 cd g && 48 git config --get svn-remote.svn.include-paths | grep qqq 49 ) 50' 51 52test_expect_success 'SVN-side change outside of www' ' 53 ( 54 cd s && 55 echo b >> qqq/test_qqq.txt && 56 svn_cmd commit -m "SVN-side change outside of www" && 57 svn_cmd up && 58 svn_cmd log -v | grep "SVN-side change outside of www" 59 ) 60' 61 62test_expect_success 'update git svn-cloned repo (config include)' ' 63 ( 64 cd g && 65 git svn rebase && 66 printf "test_qqq\nb\n" > expect && 67 for i in */*.txt; do cat $i >> expect2 || exit 1; done && 68 test_cmp expect2 expect && 69 rm expect expect2 70 ) 71' 72 73test_expect_success 'update git svn-cloned repo (option include)' ' 74 ( 75 cd c && 76 git svn rebase --include-paths="qqq" && 77 printf "test_qqq\nb\n" > expect && 78 for i in */*.txt; do cat $i >> expect2 || exit 1; done && 79 test_cmp expect2 expect && 80 rm expect expect2 81 ) 82' 83 84test_expect_success 'SVN-side change inside of ignored www' ' 85 ( 86 cd s && 87 echo zaq >> www/test_www.txt && 88 svn_cmd commit -m "SVN-side change inside of www/test_www.txt" && 89 svn_cmd up && 90 svn_cmd log -v | grep "SVN-side change inside of www/test_www.txt" 91 ) 92' 93 94test_expect_success 'update git svn-cloned repo (config include)' ' 95 ( 96 cd g && 97 git svn rebase && 98 printf "test_qqq\nb\n" > expect && 99 for i in */*.txt; do cat $i >> expect2 || exit 1; done && 100 test_cmp expect2 expect && 101 rm expect expect2 102 ) 103' 104 105test_expect_success 'update git svn-cloned repo (option include)' ' 106 ( 107 cd c && 108 git svn rebase --include-paths="qqq" && 109 printf "test_qqq\nb\n" > expect && 110 for i in */*.txt; do cat $i >> expect2 || exit 1; done && 111 test_cmp expect2 expect && 112 rm expect expect2 113 ) 114' 115 116test_expect_success 'SVN-side change in and out of included qqq' ' 117 ( 118 cd s && 119 echo cvf >> www/test_www.txt && 120 echo ygg >> qqq/test_qqq.txt && 121 svn_cmd commit -m "SVN-side change in and out of ignored www" && 122 svn_cmd up && 123 svn_cmd log -v | grep "SVN-side change in and out of ignored www" 124 ) 125' 126 127test_expect_success 'update git svn-cloned repo again (config include)' ' 128 ( 129 cd g && 130 git svn rebase && 131 printf "test_qqq\nb\nygg\n" > expect && 132 for i in */*.txt; do cat $i >> expect2 || exit 1; done && 133 test_cmp expect2 expect && 134 rm expect expect2 135 ) 136' 137 138test_expect_success 'update git svn-cloned repo again (option include)' ' 139 ( 140 cd c && 141 git svn rebase --include-paths="qqq" && 142 printf "test_qqq\nb\nygg\n" > expect && 143 for i in */*.txt; do cat $i >> expect2 || exit 1; done && 144 test_cmp expect2 expect && 145 rm expect expect2 146 ) 147' 148 149test_done