tests/test-custom-filters.t
changeset 12124 7edda6c7985d
parent 8742 a964ab624385
child 12125 e5ccb9ea8266
equal deleted inserted replaced
12123:323292c2e566 12124:7edda6c7985d
       
     1   $ hg init
       
     2 
       
     3   $ cat > .hg/hgrc <<EOF
       
     4   > [extensions]
       
     5   > prefixfilter = prefix.py
       
     6   > [encode]
       
     7   > *.txt = stripprefix: Copyright 2046, The Masters
       
     8   > [decode]
       
     9   > *.txt = insertprefix: Copyright 2046, The Masters
       
    10   > EOF
       
    11 
       
    12   $ cat > prefix.py <<EOF
       
    13   > from mercurial import util
       
    14   > def stripprefix(s, cmd, filename, **kwargs):
       
    15   >     header = '%s\n' % cmd
       
    16   >     if s[:len(header)] != header:
       
    17   >         raise util.Abort('missing header "%s" in %s' % (cmd, filename))
       
    18   >     return s[len(header):]
       
    19   > def insertprefix(s, cmd):
       
    20   >     return '%s\n%s' % (cmd, s)
       
    21   > def reposetup(ui, repo):
       
    22   >     repo.adddatafilter('stripprefix:', stripprefix)
       
    23   >     repo.adddatafilter('insertprefix:', insertprefix)
       
    24   > EOF
       
    25 
       
    26   $ cat > .hgignore <<EOF
       
    27   > .hgignore
       
    28   > prefix.py
       
    29   > prefix.pyc
       
    30   > EOF
       
    31 
       
    32   $ cat > stuff.txt <<EOF
       
    33   > Copyright 2046, The Masters
       
    34   > Some stuff to ponder very carefully.
       
    35   > EOF
       
    36   $ hg add stuff.txt
       
    37   $ hg ci -m stuff
       
    38 
       
    39 Repository data:
       
    40 
       
    41   $ hg cat stuff.txt
       
    42   Some stuff to ponder very carefully.
       
    43 
       
    44 Fresh checkout:
       
    45 
       
    46   $ rm stuff.txt
       
    47   $ hg up -C
       
    48   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    49   $ cat stuff.txt
       
    50   Copyright 2046, The Masters
       
    51   Some stuff to ponder very carefully.
       
    52   $ echo >> stuff.txt <<EOF
       
    53   > Very very carefully.
       
    54   > EOF
       
    55   $ hg stat
       
    56   M stuff.txt
       
    57 
       
    58   $ cat > morestuff.txt <<EOF
       
    59   > Unauthorized material subject to destruction.
       
    60   > EOF
       
    61 
       
    62 Problem encoding:
       
    63 
       
    64   $ hg add morestuff.txt
       
    65   $ hg ci -m morestuff
       
    66   abort: missing header "Copyright 2046, The Masters" in morestuff.txt
       
    67   $ hg stat
       
    68   M stuff.txt
       
    69   A morestuff.txt