revset: get revision number of each node from target namespaces
Before this patch, revset predicate "named()" uses each nodes gotten
from target namespaces directly.
This causes problems below:
- combination of other predicates doesn't work correctly, because
they assume that revisions are listed up in number
- "hg log" doesn't show any revisions for "named()" result, because:
- "changeset_printer" stores formatted output for each revisions
into dict with revision number (= ctx.rev()) as a key of them
- "changeset_printer.flush(rev)" writes stored output for
the specified revision, but
- "commands.log" invokes it with the node, gotten from "named()"
- "hg debugrevspec" shows nodes (= may be binary) directly
Difference between revset predicate "tag()" and "named('tags')" in
tests is fixed in subsequent patch.
$ for i in aaa zzz; do
> hg init t
> cd t
>
> echo
> echo "-- With $i"
>
> touch file
> hg add file
> hg ci -m "Add"
>
> hg cp file $i
> hg ci -m "a -> $i"
>
> hg cp $i other-file
> echo "different" >> $i
> hg ci -m "$i -> other-file"
>
> hg cp other-file somename
>
> echo "Status":
> hg st -C
> echo
> echo "Diff:"
> hg diff -g
>
> cd ..
> rm -rf t
> done
-- With aaa
Status:
A somename
other-file
Diff:
diff --git a/other-file b/somename
copy from other-file
copy to somename
-- With zzz
Status:
A somename
other-file
Diff:
diff --git a/other-file b/somename
copy from other-file
copy to somename