mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
c1774bb6c3
Implemented as two functions: diffstat, which yields lines of text, formatted as a usual diffstat output, and diffstatdata, which is called inside diffstat to do real performing and yield file names with appropriate data (numbers of added and removed lines).
120 lines
3.1 KiB
Bash
Executable File
120 lines
3.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
fixheaders()
|
|
{
|
|
sed -e 's/\(Message-Id:.*@\).*/\1/' \
|
|
-e 's/\(In-Reply-To:.*@\).*/\1/' \
|
|
-e 's/\(References:.*@\).*/\1/' \
|
|
-e 's/===.*/===/'
|
|
}
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
echo "patchbomb=" >> $HGRCPATH
|
|
|
|
COLUMNS=80; export COLUMNS
|
|
|
|
hg init t
|
|
cd t
|
|
echo a > a
|
|
hg commit -Ama -d '1 0'
|
|
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar tip | \
|
|
fixheaders
|
|
|
|
echo b > b
|
|
hg commit -Amb -d '2 0'
|
|
|
|
hg email --date '1970-1-1 0:2' -n -f quux -t foo -c bar -s test 0:tip | \
|
|
fixheaders
|
|
|
|
hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip
|
|
|
|
cd ..
|
|
|
|
hg clone -q t t2
|
|
cd t2
|
|
echo c > c
|
|
hg commit -Amc -d '3 0'
|
|
|
|
cat > description <<EOF
|
|
a multiline
|
|
|
|
description
|
|
EOF
|
|
|
|
echo "% test bundle and description"
|
|
hg email --date '1970-1-1 0:3' -n -f quux -t foo \
|
|
-c bar -s test -r tip -b --desc description | \
|
|
fixheaders
|
|
|
|
echo "% utf-8 patch"
|
|
python -c 'fp = open("utf", "wb"); fp.write("h\xC3\xB6mma!\n"); fp.close();'
|
|
hg commit -A -d '4 0' -m 'charset=utf-8; content-transfer-encoding: base64'
|
|
|
|
echo "% no mime encoding for email --test"
|
|
hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -n | fixheaders > mailtest
|
|
echo "% md5sum of 8-bit output"
|
|
$TESTDIR/md5sum.py mailtest
|
|
rm mailtest
|
|
|
|
echo "% mime encoded mbox"
|
|
hg email --date '1970-1-1 0:4' -f quux -t foo -c bar -r tip -m mbox
|
|
cat mbox | fixheaders
|
|
rm mbox
|
|
|
|
echo "% iso-8859-1 patch"
|
|
python -c 'fp = open("isolatin", "wb"); fp.write("h\xF6mma!\n"); fp.close();'
|
|
hg commit -A -d '5 0' -m 'charset=us-ascii; content-transfer-encoding: 8bit'
|
|
|
|
echo "% fake ascii mbox"
|
|
hg email --date '1970-1-1 0:5' -f quux -t foo -c bar -r tip -m mbox
|
|
fixheaders < mbox > mboxfix
|
|
echo "% md5sum of 8-bit output"
|
|
$TESTDIR/md5sum.py mboxfix
|
|
|
|
echo "% test diffstat for single patch"
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y 2 | \
|
|
fixheaders
|
|
|
|
echo "% test diffstat for multiple patches"
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -d -y 0:1 | \
|
|
fixheaders
|
|
|
|
echo "% test inline for single patch"
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 2 | \
|
|
fixheaders
|
|
|
|
echo "% test inline for multiple patches"
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 0:1 | \
|
|
fixheaders
|
|
|
|
echo "% test attach for single patch"
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a 2 | \
|
|
fixheaders
|
|
|
|
echo "% test attach for multiple patches"
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -a 0:1 | \
|
|
fixheaders
|
|
|
|
echo "% test intro for single patch"
|
|
hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test 2 | \
|
|
fixheaders
|
|
|
|
echo "% test intro for multiple patches"
|
|
hg email --date '1970-1-1 0:1' -n --intro -f quux -t foo -c bar -s test 0:1 | \
|
|
fixheaders
|
|
|
|
echo "% tagging csets"
|
|
hg tag -r0 zero zero.foo
|
|
hg tag -r1 one one.patch
|
|
hg tag -r2 two two.diff
|
|
|
|
echo "% test inline for single named patch"
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 2 | \
|
|
fixheaders
|
|
|
|
echo "% test inline for multiple named/unnamed patches"
|
|
hg email --date '1970-1-1 0:1' -n -f quux -t foo -c bar -s test -i 0:1 | \
|
|
fixheaders
|
|
|