Implement the patience diff algorithm
[git/platforms.git] / t / diff-lib.sh
blob4bddeb591ecc17ec532164d0d6cf1ad1a54eb996
3 _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
4 _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
5 sanitize_diff_raw='/^:/s/ '"$_x40"' '"$_x40"' \([A-Z]\)[0-9]* / X X \1# /'
6 compare_diff_raw () {
7 # When heuristics are improved, the score numbers would change.
8 # Ignore them while comparing.
9 # Also we do not check SHA1 hash generation in this test, which
10 # is a job for t0000-basic.sh
12 sed -e "$sanitize_diff_raw" <"$1" >.tmp-1
13 sed -e "$sanitize_diff_raw" <"$2" >.tmp-2
14 test_cmp .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
17 sanitize_diff_raw_z='/^:/s/ '"$_x40"' '"$_x40"' \([A-Z]\)[0-9]*$/ X X \1#/'
18 compare_diff_raw_z () {
19 # When heuristics are improved, the score numbers would change.
20 # Ignore them while comparing.
21 # Also we do not check SHA1 hash generation in this test, which
22 # is a job for t0000-basic.sh
24 perl -pe 'y/\000/\012/' <"$1" | sed -e "$sanitize_diff_raw_z" >.tmp-1
25 perl -pe 'y/\000/\012/' <"$2" | sed -e "$sanitize_diff_raw_z" >.tmp-2
26 test_cmp .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
29 compare_diff_patch () {
30 # When heuristics are improved, the score numbers would change.
31 # Ignore them while comparing.
32 sed -e '
33 /^[dis]*imilarity index [0-9]*%$/d
34 /^index [0-9a-f]*\.\.[0-9a-f]/d
35 ' <"$1" >.tmp-1
36 sed -e '
37 /^[dis]*imilarity index [0-9]*%$/d
38 /^index [0-9a-f]*\.\.[0-9a-f]/d
39 ' <"$2" >.tmp-2
40 test_cmp .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2