view tests/test-bdiff.py.out @ 30433:96f2f50d923f

bdiff: give slight preference to removing trailing lines [This change could be folded into the previous changeset to minimize the repo churn ...] Similar to the previous change, introduce an exception to the general preference for matches in the middle of bdiff ranges: If the best match on the B side starts at the beginning of the bdiff range, don't aim for the middle-most A side match but for the earliest. New (later) matches on the A side will only be considered better if the corresponding match on the B side *not* is at the beginning of the range. Thus, if the best (middle-most) match on the B side turns out to be at the beginning of the range, the earliest match on the A side will be used. The bundle size for 4.0 (hg bundle --base null -r 4.0 x.hg) happens to go from 22807275 to 22808120 bytes - a 0.004% increase.
author Mads Kiilerich <madski@unity3d.com>
date Tue, 15 Nov 2016 21:56:49 +0100
parents 3633403888ae
children 7c0c722d568d
line wrap: on
line source

test 'a\nc\n\n\n\n' 'a\nb\n\n\n'
test 'a\nb\nc\n' 'a\nc\n'
test '' ''
test 'a\nb\nc' 'a\nb\nc'
test 'a\nb\nc\nd\n' 'a\nd\n'
test 'a\nb\nc\nd\n' 'a\nc\ne\n'
test 'a\nb\nc\n' 'a\nc\n'
test 'a\n' 'c\na\nb\n'
test 'a\n' ''
test 'a\n' 'b\nc\n'
test 'a\n' 'c\na\n'
test '' 'adjfkjdjksdhfksj'
test '' 'ab'
test '' 'abc'
test 'a' 'a'
test 'ab' 'ab'
test 'abc' 'abc'
test 'a\n' 'a\n'
test 'a\nb' 'a\nb'
showdiff(
  'x\n\nx\n\nx\n\nx\n\nz\n',
  'x\n\nx\n\ny\n\nx\n\nx\n\nz\n'):
 'x\n\nx\n\n'
 6 6 '' -> 'y\n\n'
 'x\n\nx\n\nz\n'
showdiff(
  'x\n\nx\n\nx\n\nx\n\nz\n',
  'x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n'):
 'x\n\nx\n\n'
 6 6 '' -> 'y\n\n'
 'x\n\n'
 9 9 '' -> 'y\n\n'
 'x\n\nz\n'
showdiff(
  'a\nb\nb\nb\nc\n.\nd\ne\n.\nf\n',
  'a\nb\nb\na\nb\nb\nb\nc\n.\nb\nc\n.\nd\ne\nf\n'):
 0 0 '' -> 'a\nb\nb\n'
 'a\nb\nb\nb\nc\n.\n'
 12 12 '' -> 'b\nc\n.\n'
 'd\ne\n'
 16 18 '.\n' -> ''
 'f\n'
done
done
Nice diff for a trivial change:
showdiff(
  '<0\n-\n<1\n-\n<2\n-\n<3\n-\n<4\n-\n',
  '>0\n-\n>1\n-\n>2\n-\n>3\n-\n>4\n-\n'):
 0 3 '<0\n' -> '>0\n'
 '-\n'
 5 8 '<1\n' -> '>1\n'
 '-\n'
 10 13 '<2\n' -> '>2\n'
 '-\n'
 15 18 '<3\n' -> '>3\n'
 '-\n'
 20 23 '<4\n' -> '>4\n'
 '-\n'
Diff 1 to 3 lines - preference for appending:
showdiff(
  'a\n',
  'a\na\na\n'):
 'a\n'
 2 2 '' -> 'a\na\n'
Diff 1 to 5 lines - preference for appending:
showdiff(
  'a\n',
  'a\na\na\na\na\n'):
 'a\n'
 2 2 '' -> 'a\na\na\na\n'
Diff 3 to 1 lines - preference for removing trailing lines:
showdiff(
  'a\na\na\n',
  'a\n'):
 'a\n'
 2 6 'a\na\n' -> ''
Diff 5 to 1 lines - preference for removing trailing lines:
showdiff(
  'a\na\na\na\na\n',
  'a\n'):
 'a\n'
 2 10 'a\na\na\na\n' -> ''