patch: support diff data loss detection and upgrade
In worst case, generating diff in upgrade mode can be two times more expensive
than generating it in git mode directly: we may have to regenerate the whole
diff again whenever a git feature is detected. Also, the first diff attempt is
completely buffered instead of being streamed. That said, even without having
profiled it yet, I am convinced we can fast-path the upgrade mode if necessary
were it to be used in regular diff commands, and not only in mq where avoiding
data loss is worth the price.
#!/bin/sh
# test command parsing and dispatch
"$TESTDIR/hghave" no-outer-repo || exit 80
hg init a
cd a
echo a > a
hg ci -Ama
echo "# missing arg"
hg cat
echo '% [defaults]'
hg cat a
cat >> $HGRCPATH <<EOF
[defaults]
cat = -r null
EOF
hg cat a
echo '% no repo'
cd ..
hg cat
exit 0