tests/test-bad-pull
author mpm@selenic.com
Fri, 24 Jun 2005 22:51:39 -0800
changeset 460 6409d9a0df43
parent 395 fbe8834923c5
child 485 c5705ab9cebd
permissions -rwxr-xr-x
add dirstate debugging commands -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 add dirstate debugging commands As I've played with various different merges and more recently rawcommit, I've found the following patch to be very very helpful in figuring out whether the dirstate is being left in a consistent or inconsistent state with respect to the current manifest. I attempted to deduce the invariants that were assumed by the current code, and then check it in this code. I may or may not have captured the design intent in this check; if not, I'd be very happy to hear more clearly what was intended, so that I can write tests to that expectation. Anyway, here's the patch. Not sure if it's a good idea to commit it to the mainline, or just leave it as a debugging aid. I attempted to package it so that it doesn't interfere with normal usage. Michael Fetterman (tweaked by mpm: remove -d magic) manifest hash: 869f5b5f954dc0f46ba27322359e811d5e21d71c -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCvP77ywK+sNU5EO8RArmtAKCCVuI2slANzWZ26P5edtH/ixdwNwCfZLWl 5P+V+C92II3usO4YW2MULKY= =/Pv4 -----END PGP SIGNATURE-----
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
395
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     1
#!/bin/bash
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     2
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     3
mkdir copy
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     4
cd copy
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     5
hg init http://localhost:20059/
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     6
hg verify
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     7
hg co
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     8
cat foo
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
     9
hg manifest
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    10
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    11
cat > dumb.py <<EOF
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    12
import BaseHTTPServer, SimpleHTTPServer, signal
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    13
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    14
def run(server_class=BaseHTTPServer.HTTPServer,
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    15
        handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    16
    server_address = ('localhost', 20059)
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    17
    httpd = server_class(server_address, handler_class)
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    18
    httpd.serve_forever()
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    19
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    20
signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    21
run()
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    22
EOF
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    23
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    24
python dumb.py 2>/dev/null &
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    25
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    26
mkdir copy2
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    27
cd copy2
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    28
hg init http://localhost:20059/foo
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    29
hg verify
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    30
hg co
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    31
cat foo
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    32
hg manifest
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    33
fbe8834923c5 commands: report http exceptions nicely
mpm@selenic.com
parents:
diff changeset
    34
kill %1