patch: drop eol normalization fast-path for 'lf' and 'crlf'
With eolmode set to 'lf' or 'crlf' we avoided the hunk duplication and
normalization by reading the input patch in text mode. Dropping this
optimization simplifies code expectations for a small overhead.
The change in test-mq-eol comes from a tolerance to CRLF instead of LF for last
lines without newlines being broken by this revision. This tolerance was only
partially supported and will be added again in a better way.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
teststrip() {
hg up -C $1
echo % before update $1, strip $2
hg parents
hg strip $2 2>&1 | sed 's/\(saving bundle to \).*/\1/'
echo % after update $1, strip $2
hg parents
hg unbundle -q .hg/strip-backup/*
rm .hg/strip-backup/*
}
hg init test
cd test
echo foo > bar
hg ci -Ama
echo more >> bar
hg ci -Amb
echo blah >> bar
hg ci -Amc
hg up 1
echo blah >> bar
hg ci -Amd
echo final >> bar
hg ci -Ame
hg log
teststrip 4 4
teststrip 4 3
teststrip 1 4
teststrip 4 2
teststrip 4 1
teststrip null 4
hg log
hg up -C 2
hg merge 4
echo % before strip of merge parent
hg parents
hg strip 4 2>&1 | sed 's/\(saving bundle to \).*/\1/'
echo % after strip of merge parent
hg parents