Mercurial > hg
view tests/test-custom-filters @ 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 | a964ab624385 |
children |
line wrap: on
line source
#!/bin/sh hg init cat > .hg/hgrc <<EOF [extensions] prefixfilter = prefix.py [encode] *.txt = stripprefix: Copyright 2046, The Masters [decode] *.txt = insertprefix: Copyright 2046, The Masters EOF cat > prefix.py <<EOF from mercurial import util def stripprefix(s, cmd, filename, **kwargs): header = '%s\n' % cmd if s[:len(header)] != header: raise util.Abort('missing header "%s" in %s' % (cmd, filename)) return s[len(header):] def insertprefix(s, cmd): return '%s\n%s' % (cmd, s) def reposetup(ui, repo): repo.adddatafilter('stripprefix:', stripprefix) repo.adddatafilter('insertprefix:', insertprefix) EOF cat > .hgignore <<EOF .hgignore prefix.py prefix.pyc EOF cat > stuff.txt <<EOF Copyright 2046, The Masters Some stuff to ponder very carefully. EOF hg add stuff.txt hg ci -m stuff echo '% Repository data:' hg cat stuff.txt echo '% Fresh checkout:' rm stuff.txt hg up -C cat stuff.txt echo >> stuff.txt <<EOF Very very carefully. EOF hg stat cat > morestuff.txt <<EOF Unauthorized material subject to destruction. EOF echo '% Problem encoding:' hg add morestuff.txt hg ci -m morestuff hg stat