Mercurial > hg
view tests/test-repair-strip @ 9827:4fe9ca519637
mdiff: fix diff -b/B/w on mixed whitespace hunks (issue127)
Previous code was computing hunks then checking if these hunks could be ignored
when taking whitespace/blank-lines options in accounts. This approach is simple
but fails with hunks containing both whitespace and non-whitespace changes, the
whole hunk is emitted while it can be mostly made of whitespace. The new
version normalize the whitespaces before hunk generation, and test for
blank-lines afterwards.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Wed, 11 Nov 2009 18:31:42 +0100 |
parents | 4a1b24dbf753 |
children | 4bb4895e1693 |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=">> $HGRCPATH teststrip() { hg -q up -C $1 echo % before update $1, strip $2 hg parents chmod -$3 $4 hg strip $2 2>&1 | sed 's/\(saving bundle to \).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/' echo % after update $1, strip $2 chmod +$3 $4 hg verify echo % journal contents if [ -f .hg/store/journal ]; then sed -e 's/\.i[^\n]*/\.i/' .hg/store/journal else echo "(no journal)" fi ls .hg/store/journal >/dev/null 2>&1 && hg recover ls .hg/strip-backup/* >/dev/null 2>&1 && hg unbundle -q .hg/strip-backup/* rm -rf .hg/strip-backup } hg init test cd test echo a > a hg -q ci -m "a" -A echo b > b hg -q ci -m "b" -A echo b2 >> b hg -q ci -m "b2" -A echo c > c hg -q ci -m "c" -A teststrip 0 2 w .hg/store/data/b.i teststrip 0 2 r .hg/store/data/b.i teststrip 0 2 w .hg/store/00manifest.i