Mercurial > hg
view tests/test-strip-cross @ 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 | 8e7796a990c5 |
children | 12e5149cafca |
line wrap: on
line source
#!/bin/sh # test stripping of filelogs where the linkrev doesn't always increase echo '[extensions]' >> $HGRCPATH echo 'hgext.mq =' >> $HGRCPATH hg init orig cd orig hidefilename() { sed -e 's/saving bundle to .*strip-backup/saving bundle to strip-backup/' } commit() { hg up -qC null count=1 for i in "$@"; do for f in $i; do echo $count > $f done count=`expr $count + 1` done hg commit -qAm "$*" } # 2 1 0 2 0 1 2 commit '201 210' commit '102 120' '210' commit '021' commit '201' '021 120' commit '012 021' '102 201' '120 210' commit 'manifest-file' commit '102 120' '012 210' '021 201' commit '201 210' '021 120' '012 102' HGUSER=another-user; export HGUSER commit 'manifest-file' commit '012' 'manifest-file' cd .. hg clone -q -U -r -1 -r -2 -r -3 -r -4 -r -6 orig crossed for i in crossed/.hg/store/00manifest.i crossed/.hg/store/data/*.i; do echo $i hg debugindex $i echo done for i in 0 1 2 3 4; do hg clone -q -U --pull crossed $i echo "% Trying to strip revision $i" hg --cwd $i strip $i 2>&1 | hidefilename echo "% Verifying" hg --cwd $i verify echo done