Mercurial > hg
view tests/test-mq-missingfiles @ 9694:8269fe2d48f6
hgweb: send proper error messages to the client
Fixes a bug in protocol which caused an exception during exception handling in
some cases on Windows. Also makes sure the server error message is correctly
propagated to the client, instead of being thrown away.
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Mon, 02 Nov 2009 10:20:04 +0100 |
parents | abd2bc899d86 |
children |
line wrap: on
line source
#!/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 echo % display rejections cat b.rej 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 echo % display rejections cat b.rej cd .. 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 ..