| 1 | #!/bin/sh |
| 2 | |
| 3 | do_filename() { |
| 4 | desc=$1 |
| 5 | postimage=$2 |
| 6 | |
| 7 | rm -fr file-creation && |
| 8 | git init file-creation && |
| 9 | ( |
| 10 | cd file-creation && |
| 11 | git commit --allow-empty -m init && |
| 12 | echo postimage >"$postimage" && |
| 13 | git add -N "$postimage" && |
| 14 | git diff HEAD >"../git-$desc.diff" |
| 15 | ) && |
| 16 | |
| 17 | rm -fr trad-modification && |
| 18 | mkdir trad-modification && |
| 19 | ( |
| 20 | cd trad-modification && |
| 21 | echo preimage >"$postimage.orig" && |
| 22 | echo postimage >"$postimage" && |
| 23 | ! diff -u "$postimage.orig" "$postimage" >"../diff-$desc.diff" |
| 24 | ) && |
| 25 | |
| 26 | rm -fr trad-creation && |
| 27 | mkdir trad-creation && |
| 28 | ( |
| 29 | cd trad-creation && |
| 30 | mkdir a b && |
| 31 | echo postimage >"b/$postimage" && |
| 32 | ! diff -pruN a b >"../add-$desc.diff" |
| 33 | ) |
| 34 | } |
| 35 | |
| 36 | do_filename plain postimage.txt && |
| 37 | do_filename 'with spaces' 'post image.txt' && |
| 38 | do_filename 'with tab' 'post image.txt' && |
| 39 | do_filename 'with backslash' 'post\image.txt' && |
| 40 | do_filename 'with quote' '"postimage".txt' && |
| 41 | expand add-plain.diff >damaged.diff || |
| 42 | { |
| 43 | echo >&2 Failed. && |
| 44 | exit 1 |
| 45 | } |