tests: fix up recent conditionalized output changes
It looks like (!) can have surprising results matching back to the original
output when adjacent lines change, probably because it uses the same code
matching that allows (?) to skip missing output.
24f55686a63d ended up adding
unconditionalized check*{exec,link} lines, duplicating the conditionalized
lines. A Windows run wanted to delete the unconditionalized lines. This now
runs on both Windows and Linux.
util: rewrite sortdict using Python 2.7's OrderedDict
Pattern copied from
https://docs.python.org/dev/library/collections.html#ordereddict-examples-and-recipes.
test-casefolding: sync with latest code changes
This goes with
c2380b448265.
perf: always pass node to revlog.revision()
I removed this in
73c3e226d2fc thinking it wasn't necessary. In fact,
we need to always pass a node so the code is compatible with revisions
before
d7d64b89a65c.
The new code uses a variable to avoid check-style complaining
about "r.revision(r.node(" patterns.
hg: backout optimizing for treemanifests
It turns out that the files list is not sufficient to identify with revlogs have
changed. In a merge commit, no files could've changed but directories would
have. For now let's just backout this optimization.
test-hardlink: do not test .hg/cache/checklink
Linux and BSD have different behavior on "os.link(src, dst)" where "src" is
a symlink. That causes test difference.
According to POSIX [1]:
If path1 names a symbolic link, it is implementation-defined whether
link() follows the symbolic link, or creates a new link to the symbolic
link itself.
So both behaviors are correct. This patch removes the trouble maker
"checklink" to make the test pass on both platforms.
[1]: http://pubs.opengroup.org/onlinepubs/
9699919799/functions/link.html