convert: try to be smarter about CVS branching
Better handles this case:
The output from cvsps -A -u --cvs-direct -q:
---------------------
PatchSet 1
Date: 2008/02/08 20:33:28
Author: fk
Branch: HEAD
Tag: (none)
Log:
initial
Members:
file_one:INITIAL->1.1
---------------------
PatchSet 2
Date: 2008/02/08 20:33:32
Author: fk
Branch: branch_name
Ancestor branch: HEAD
Tag: (none)
Log:
new file on branch
Members:
file_two:1.1->1.1.2.1
#!/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