Mercurial > hg
diff tests/test-custom-filters @ 6066:f3a8b5360100
Strip filter name from command before passing to filter function.
The new registration of in-process data filters (introduced in
f8ad3b76e923 & 11af38a592ae) failed to correctly strip the filter name
from its arguments before passing the "command" to the filter
function. Thus a registration such as
[decode]
*.gz = compress: -9
would result in the associated filter function being called with the
argument 'compress: -9' rather than just '-9' as expected.
author | Jesse Glick <jesse.glick@sun.com> |
---|---|
date | Sat, 09 Feb 2008 12:27:58 -0500 |
parents | |
children | a964ab624385 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-custom-filters Sat Feb 09 12:27:58 2008 -0500 @@ -0,0 +1,60 @@ +#!/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 +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