Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # Copyright (c) 2005 Junio C Hamano |
| 4 | # |
| 5 | |
| 6 | test_description='Two way merge with read-tree -m -u $H $M |
| 7 | |
| 8 | This is identical to t1001, but uses -u to update the work tree as well. |
| 9 | |
| 10 | ' |
| 11 | . ./test-lib.sh |
| 12 | |
| 13 | _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' |
| 14 | _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40" |
| 15 | compare_change () { |
| 16 | sed >current \ |
| 17 | -e '/^--- /d; /^+++ /d; /^@@ /d;' \ |
| 18 | -e 's/^\(.[0-7][0-7][0-7][0-7][0-7][0-7]\) '"$_x40"' /\1 X /' "$1" |
| 19 | diff -u expected current |
| 20 | } |
| 21 | |
| 22 | check_cache_at () { |
Junio C Hamano | 6973dca | 2006-04-21 23:57:45 -0700 | [diff] [blame] | 23 | clean_if_empty=`git-diff-files -- "$1"` |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 24 | case "$clean_if_empty" in |
| 25 | '') echo "$1: clean" ;; |
| 26 | ?*) echo "$1: dirty" ;; |
| 27 | esac |
| 28 | case "$2,$clean_if_empty" in |
| 29 | clean,) : ;; |
| 30 | clean,?*) false ;; |
| 31 | dirty,) false ;; |
| 32 | dirty,?*) : ;; |
| 33 | esac |
| 34 | } |
| 35 | |
| 36 | test_expect_success \ |
| 37 | setup \ |
| 38 | 'echo frotz >frotz && |
| 39 | echo nitfol >nitfol && |
| 40 | echo bozbar >bozbar && |
| 41 | echo rezrov >rezrov && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 42 | git-update-index --add nitfol bozbar rezrov && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 43 | treeH=`git-write-tree` && |
| 44 | echo treeH $treeH && |
| 45 | git-ls-tree $treeH && |
| 46 | |
| 47 | echo gnusto >bozbar && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 48 | git-update-index --add frotz bozbar --force-remove rezrov && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 49 | git-ls-files --stage >M.out && |
| 50 | treeM=`git-write-tree` && |
| 51 | echo treeM $treeM && |
| 52 | git-ls-tree $treeM && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 53 | sum bozbar frotz nitfol >M.sum && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 54 | git-diff-tree $treeH $treeM' |
| 55 | |
| 56 | test_expect_success \ |
| 57 | '1, 2, 3 - no carry forward' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 58 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 59 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 60 | git-read-tree -m -u $treeH $treeM && |
| 61 | git-ls-files --stage >1-3.out && |
| 62 | cmp M.out 1-3.out && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 63 | sum bozbar frotz nitfol >actual3.sum && |
| 64 | cmp M.sum actual3.sum && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 65 | check_cache_at bozbar clean && |
| 66 | check_cache_at frotz clean && |
| 67 | check_cache_at nitfol clean' |
| 68 | |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 69 | test_expect_success \ |
| 70 | '4 - carry forward local addition.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 71 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 72 | git-read-tree --reset -u $treeH && |
| 73 | echo "+100644 X 0 yomin" >expected && |
| 74 | echo yomin >yomin && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 75 | git-update-index --add yomin && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 76 | git-read-tree -m -u $treeH $treeM && |
Pavel Roskin | 4d9d62f | 2005-08-10 23:56:21 -0400 | [diff] [blame] | 77 | git-ls-files --stage >4.out || return 1 |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 78 | diff -U0 M.out 4.out >4diff.out |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 79 | compare_change 4diff.out expected && |
| 80 | check_cache_at yomin clean && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 81 | sum bozbar frotz nitfol >actual4.sum && |
| 82 | cmp M.sum actual4.sum && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 83 | echo yomin >yomin1 && |
| 84 | diff yomin yomin1 && |
| 85 | rm -f yomin1' |
| 86 | |
| 87 | test_expect_success \ |
| 88 | '5 - carry forward local addition.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 89 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 90 | git-read-tree --reset -u $treeH && |
| 91 | git-read-tree -m -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 92 | echo yomin >yomin && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 93 | git-update-index --add yomin && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 94 | echo yomin yomin >yomin && |
| 95 | git-read-tree -m -u $treeH $treeM && |
Pavel Roskin | 4d9d62f | 2005-08-10 23:56:21 -0400 | [diff] [blame] | 96 | git-ls-files --stage >5.out || return 1 |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 97 | diff -U0 M.out 5.out >5diff.out |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 98 | compare_change 5diff.out expected && |
| 99 | check_cache_at yomin dirty && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 100 | sum bozbar frotz nitfol >actual5.sum && |
| 101 | cmp M.sum actual5.sum && |
Junio C Hamano | 7d95ee9 | 2005-06-08 02:08:54 -0700 | [diff] [blame] | 102 | : dirty index should have prevented -u from checking it out. && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 103 | echo yomin yomin >yomin1 && |
| 104 | diff yomin yomin1 && |
| 105 | rm -f yomin1' |
| 106 | |
| 107 | test_expect_success \ |
| 108 | '6 - local addition already has the same.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 109 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 110 | git-read-tree --reset -u $treeH && |
| 111 | echo frotz >frotz && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 112 | git-update-index --add frotz && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 113 | git-read-tree -m -u $treeH $treeM && |
| 114 | git-ls-files --stage >6.out && |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 115 | diff -U0 M.out 6.out && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 116 | check_cache_at frotz clean && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 117 | sum bozbar frotz nitfol >actual3.sum && |
| 118 | cmp M.sum actual3.sum && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 119 | echo frotz >frotz1 && |
| 120 | diff frotz frotz1 && |
| 121 | rm -f frotz1' |
| 122 | |
| 123 | test_expect_success \ |
| 124 | '7 - local addition already has the same.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 125 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 126 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 127 | echo frotz >frotz && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 128 | git-update-index --add frotz && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 129 | echo frotz frotz >frotz && |
| 130 | git-read-tree -m -u $treeH $treeM && |
| 131 | git-ls-files --stage >7.out && |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 132 | diff -U0 M.out 7.out && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 133 | check_cache_at frotz dirty && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 134 | sum bozbar frotz nitfol >actual7.sum && |
| 135 | if cmp M.sum actual7.sum; then false; else :; fi && |
Junio C Hamano | 7d95ee9 | 2005-06-08 02:08:54 -0700 | [diff] [blame] | 136 | : dirty index should have prevented -u from checking it out. && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 137 | echo frotz frotz >frotz1 && |
| 138 | diff frotz frotz1 && |
| 139 | rm -f frotz1' |
| 140 | |
| 141 | test_expect_success \ |
| 142 | '8 - conflicting addition.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 143 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 144 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 145 | echo frotz frotz >frotz && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 146 | git-update-index --add frotz && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 147 | if git-read-tree -m -u $treeH $treeM; then false; else :; fi' |
| 148 | |
| 149 | test_expect_success \ |
| 150 | '9 - conflicting addition.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 151 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 152 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 153 | echo frotz frotz >frotz && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 154 | git-update-index --add frotz && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 155 | echo frotz >frotz && |
| 156 | if git-read-tree -m -u $treeH $treeM; then false; else :; fi' |
| 157 | |
| 158 | test_expect_success \ |
| 159 | '10 - path removed.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 160 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 161 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 162 | echo rezrov >rezrov && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 163 | git-update-index --add rezrov && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 164 | git-read-tree -m -u $treeH $treeM && |
| 165 | git-ls-files --stage >10.out && |
| 166 | cmp M.out 10.out && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 167 | sum bozbar frotz nitfol >actual10.sum && |
| 168 | cmp M.sum actual10.sum' |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 169 | |
| 170 | test_expect_success \ |
| 171 | '11 - dirty path removed.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 172 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 173 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 174 | echo rezrov >rezrov && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 175 | git-update-index --add rezrov && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 176 | echo rezrov rezrov >rezrov && |
| 177 | if git-read-tree -m -u $treeH $treeM; then false; else :; fi' |
| 178 | |
| 179 | test_expect_success \ |
| 180 | '12 - unmatching local changes being removed.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 181 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 182 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 183 | echo rezrov rezrov >rezrov && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 184 | git-update-index --add rezrov && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 185 | if git-read-tree -m -u $treeH $treeM; then false; else :; fi' |
| 186 | |
| 187 | test_expect_success \ |
| 188 | '13 - unmatching local changes being removed.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 189 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 190 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 191 | echo rezrov rezrov >rezrov && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 192 | git-update-index --add rezrov && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 193 | echo rezrov >rezrov && |
| 194 | if git-read-tree -m -u $treeH $treeM; then false; else :; fi' |
| 195 | |
| 196 | cat >expected <<EOF |
| 197 | -100644 X 0 nitfol |
| 198 | +100644 X 0 nitfol |
| 199 | EOF |
| 200 | |
| 201 | test_expect_success \ |
| 202 | '14 - unchanged in two heads.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 203 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 204 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 205 | echo nitfol nitfol >nitfol && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 206 | git-update-index --add nitfol && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 207 | git-read-tree -m -u $treeH $treeM && |
Pavel Roskin | 4d9d62f | 2005-08-10 23:56:21 -0400 | [diff] [blame] | 208 | git-ls-files --stage >14.out || return 1 |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 209 | diff -U0 M.out 14.out >14diff.out |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 210 | compare_change 14diff.out expected && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 211 | sum bozbar frotz >actual14.sum && |
| 212 | grep -v nitfol M.sum > expected14.sum && |
| 213 | cmp expected14.sum actual14.sum && |
| 214 | sum bozbar frotz nitfol >actual14a.sum && |
| 215 | if cmp M.sum actual14a.sum; then false; else :; fi && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 216 | check_cache_at nitfol clean && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 217 | echo nitfol nitfol >nitfol1 && |
| 218 | diff nitfol nitfol1 && |
| 219 | rm -f nitfol1' |
| 220 | |
| 221 | test_expect_success \ |
| 222 | '15 - unchanged in two heads.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 223 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 224 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 225 | echo nitfol nitfol >nitfol && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 226 | git-update-index --add nitfol && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 227 | echo nitfol nitfol nitfol >nitfol && |
| 228 | git-read-tree -m -u $treeH $treeM && |
Pavel Roskin | 4d9d62f | 2005-08-10 23:56:21 -0400 | [diff] [blame] | 229 | git-ls-files --stage >15.out || return 1 |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 230 | diff -U0 M.out 15.out >15diff.out |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 231 | compare_change 15diff.out expected && |
| 232 | check_cache_at nitfol dirty && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 233 | sum bozbar frotz >actual15.sum && |
| 234 | grep -v nitfol M.sum > expected15.sum && |
| 235 | cmp expected15.sum actual15.sum && |
| 236 | sum bozbar frotz nitfol >actual15a.sum && |
| 237 | if cmp M.sum actual15a.sum; then false; else :; fi && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 238 | echo nitfol nitfol nitfol >nitfol1 && |
| 239 | diff nitfol nitfol1 && |
| 240 | rm -f nitfol1' |
| 241 | |
| 242 | test_expect_success \ |
| 243 | '16 - conflicting local change.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 244 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 245 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 246 | echo bozbar bozbar >bozbar && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 247 | git-update-index --add bozbar && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 248 | if git-read-tree -m -u $treeH $treeM; then false; else :; fi' |
| 249 | |
| 250 | test_expect_success \ |
| 251 | '17 - conflicting local change.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 252 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 253 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 254 | echo bozbar bozbar >bozbar && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 255 | git-update-index --add bozbar && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 256 | echo bozbar bozbar bozbar >bozbar && |
| 257 | if git-read-tree -m -u $treeH $treeM; then false; else :; fi' |
| 258 | |
| 259 | test_expect_success \ |
| 260 | '18 - local change already having a good result.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 261 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 262 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 263 | echo gnusto >bozbar && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 264 | git-update-index --add bozbar && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 265 | git-read-tree -m -u $treeH $treeM && |
| 266 | git-ls-files --stage >18.out && |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 267 | diff -U0 M.out 18.out && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 268 | check_cache_at bozbar clean && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 269 | sum bozbar frotz nitfol >actual18.sum && |
| 270 | cmp M.sum actual18.sum' |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 271 | |
| 272 | test_expect_success \ |
| 273 | '19 - local change already having a good result, further modified.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 274 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 275 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 276 | echo gnusto >bozbar && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 277 | git-update-index --add bozbar && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 278 | echo gnusto gnusto >bozbar && |
| 279 | git-read-tree -m -u $treeH $treeM && |
| 280 | git-ls-files --stage >19.out && |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 281 | diff -U0 M.out 19.out && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 282 | check_cache_at bozbar dirty && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 283 | sum frotz nitfol >actual19.sum && |
| 284 | grep -v bozbar M.sum > expected19.sum && |
| 285 | cmp expected19.sum actual19.sum && |
| 286 | sum bozbar frotz nitfol >actual19a.sum && |
| 287 | if cmp M.sum actual19a.sum; then false; else :; fi && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 288 | echo gnusto gnusto >bozbar1 && |
| 289 | diff bozbar bozbar1 && |
| 290 | rm -f bozbar1' |
| 291 | |
| 292 | test_expect_success \ |
| 293 | '20 - no local change, use new tree.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 294 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 295 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 296 | echo bozbar >bozbar && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 297 | git-update-index --add bozbar && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 298 | git-read-tree -m -u $treeH $treeM && |
| 299 | git-ls-files --stage >20.out && |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 300 | diff -U0 M.out 20.out && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 301 | check_cache_at bozbar clean && |
Mark Allen | cebe403 | 2005-06-27 18:40:31 -0700 | [diff] [blame] | 302 | sum bozbar frotz nitfol >actual20.sum && |
| 303 | cmp M.sum actual20.sum' |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 304 | |
| 305 | test_expect_success \ |
| 306 | '21 - no local change, dirty cache.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 307 | 'rm -f .git/index nitfol bozbar rezrov frotz && |
| 308 | git-read-tree --reset -u $treeH && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 309 | echo bozbar >bozbar && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 310 | git-update-index --add bozbar && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 311 | echo gnusto gnusto >bozbar && |
| 312 | if git-read-tree -m -u $treeH $treeM; then false; else :; fi' |
| 313 | |
| 314 | # Also make sure we did not break DF vs DF/DF case. |
| 315 | test_expect_success \ |
| 316 | 'DF vs DF/DF case setup.' \ |
Junio C Hamano | fcc387d | 2006-05-17 01:17:46 -0700 | [diff] [blame] | 317 | 'rm -f .git/index |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 318 | echo DF >DF && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 319 | git-update-index --add DF && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 320 | treeDF=`git-write-tree` && |
| 321 | echo treeDF $treeDF && |
| 322 | git-ls-tree $treeDF && |
| 323 | |
| 324 | rm -f DF && |
| 325 | mkdir DF && |
| 326 | echo DF/DF >DF/DF && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 327 | git-update-index --add --remove DF DF/DF && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 328 | treeDFDF=`git-write-tree` && |
| 329 | echo treeDFDF $treeDFDF && |
| 330 | git-ls-tree $treeDFDF && |
| 331 | git-ls-files --stage >DFDF.out' |
| 332 | |
| 333 | test_expect_success \ |
| 334 | 'DF vs DF/DF case test.' \ |
| 335 | 'rm -f .git/index && |
| 336 | rm -fr DF && |
| 337 | echo DF >DF && |
Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 338 | git-update-index --add DF && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 339 | git-read-tree -m -u $treeDF $treeDFDF && |
| 340 | git-ls-files --stage >DFDFcheck.out && |
Linus Torvalds | c928c67 | 2006-05-25 22:41:02 -0700 | [diff] [blame] | 341 | diff -U0 DFDF.out DFDFcheck.out && |
Junio C Hamano | c859600 | 2005-06-07 11:36:30 -0700 | [diff] [blame] | 342 | check_cache_at DF/DF clean' |
| 343 | |
| 344 | test_done |