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-----
+ mkdir r1
+ cd r1
+ hg init
+ echo a
+ hg addremove
+ hg commit -t 1 -u test -d '0 0'
+ cd ..
+ mkdir r2
+ cd r2
+ hg init ../r1
+ hg up
+ echo abc
+ hg diff
+ sed 's/\(\(---\|+++\).*\)\t.*/\1/'
diff -r c19d34741b0a a
--- a/a
+++ b/a
@@ -1,1 +1,1 @@
-a
+abc
+ cd ../r1
+ echo b
+ echo a2
+ hg addremove
+ hg commit -t 2 -u test -d '0 0'
+ cd ../r2
+ hg -q pull ../r1
+ hg status
C a
+ hg -d up
resolving manifests
ancestor a0c8bcbbb45c local a0c8bcbbb45c remote 1165e8bd193e
a versions differ, resolve
remote created b
getting b
merging a
resolving a
file a: other d730145abbf9 ancestor b789fdd96dc2
+ hg -d up -m
resolving manifests
ancestor 1165e8bd193e local 1165e8bd193e remote 1165e8bd193e
+ hg parents
changeset: 1:1e71731e6fbb5b35fae293120dea6964371c13c6
tag: tip
user: test
date: Thu Jan 1 00:00:00 1970
summary: 2
+ hg -v history
changeset: 1:1e71731e6fbb5b35fae293120dea6964371c13c6
tag: tip
manifest: 1:1165e8bd193e17ad7d321d846fcf27ff3f412758
user: test
date: Thu Jan 1 00:00:00 1970
files: a b
description:
2
changeset: 0:c19d34741b0a4ced8e4ba74bb834597d5193851e
manifest: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0
user: test
date: Thu Jan 1 00:00:00 1970
files: a
description:
1
+ hg diff
+ sed 's/\(\(---\|+++\).*\)\t.*/\1/'
diff -r 1e71731e6fbb a
--- a/a
+++ b/a
@@ -1,1 +1,1 @@
-a2
+abc