test-mq-missingfiles
85 lines
| 1.5 KiB
| text/plain
|
TextLexer
/ tests / test-mq-missingfiles
Patrick Mezard
|
r5581 | #!/bin/sh | ||
# Test issue835: | ||||
# qpush fails immediately when patching a missing file, but | ||||
# remaining added files are still created empty which will | ||||
# trick a future qrefresh. | ||||
cat > writelines.py <<EOF | ||||
import sys | ||||
path = sys.argv[1] | ||||
args = sys.argv[2:] | ||||
assert (len(args) % 2) == 0 | ||||
f = file(path, 'wb') | ||||
for i in xrange(len(args)/2): | ||||
count, s = args[2*i:2*i+2] | ||||
count = int(count) | ||||
s = s.decode('string_escape') | ||||
f.write(s*count) | ||||
f.close() | ||||
EOF | ||||
echo "[extensions]" >> $HGRCPATH | ||||
echo "mq=" >> $HGRCPATH | ||||
hg init normal | ||||
cd normal | ||||
python ../writelines.py b 10 'a\n' | ||||
hg ci -Am addb | ||||
echo a > a | ||||
python ../writelines.py b 2 'b\n' 10 'a\n' 2 'c\n' | ||||
echo c > c | ||||
hg add a c | ||||
hg qnew -f changeb | ||||
hg qpop | ||||
hg rm b | ||||
hg ci -Am rmb | ||||
echo % push patch with missing target | ||||
hg qpush | ||||
echo % display added files | ||||
cat a | ||||
cat c | ||||
Patrick Mezard
|
r5652 | echo % display rejections | ||
cat b.rej | ||||
Patrick Mezard
|
r5581 | cd .. | ||
echo "[diff]" >> $HGRCPATH | ||||
echo "git=1" >> $HGRCPATH | ||||
hg init git | ||||
cd git | ||||
python ../writelines.py b 1 '\x00' | ||||
hg ci -Am addb | ||||
echo a > a | ||||
python ../writelines.py b 1 '\x01' 1 '\x00' | ||||
echo c > c | ||||
hg add a c | ||||
hg qnew -f changeb | ||||
hg qpop | ||||
hg rm b | ||||
hg ci -Am rmb | ||||
echo % push git patch with missing target | ||||
hg qpush 2>&1 | sed -e 's/b:.*/b: No such file or directory/' | ||||
hg st | ||||
echo % display added files | ||||
cat a | ||||
cat c | ||||
Patrick Mezard
|
r5652 | echo % display rejections | ||
cat b.rej | ||||
Patrick Mezard
|
r5581 | cd .. | ||
Patrick Mezard
|
r7506 | echo % test push creating directory during git copy or rename | ||
hg init missingdir | ||||
cd missingdir | ||||
echo a > a | ||||
hg ci -Am adda | ||||
mkdir d | ||||
hg copy a d/a2 | ||||
hg mv a d/a | ||||
hg qnew -g -f patch | ||||
hg qpop | ||||
hg qpush | ||||
cd .. | ||||