##// END OF EJS Templates
addremove: correctly handle intermediate symlinks...
addremove: correctly handle intermediate symlinks This fixes problems mentioned in issue660 comments (unrelated to original issue) where directory was renamed, and symlink was added instead. In such situation addremove wasn't able to correctly detect that old files no longer here, but tried to add symlink (and failed due collision with old files).

File last commit:

r6066:f3a8b536 default
r6651:7f0dd352 default
Show More
test-custom-filters
60 lines | 1.1 KiB | text/plain | TextLexer
#!/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