log: follow filenames through renames (issue647)
In commands.log a displayer was initialized from
cmdutil.show_changeset() with the initial matchfn (which designates
the specified files which only is correct in the highest revision in
the range). prep() is handed the correct list of files, but
displayer.show() didn't use that list but keept using the original
matchfn.
The matchfn argument to cmdutil.show_changeset() wasn't specified in
other places and is only used in .show(), so now we give the matchfn
as an optional parameter to .show().
We do however still have to detect --patch and --stat from opts in
show_changeset() and let it imply a matchall, but that can now be
overruled with the new .show() matchfn parameter.
checkout
2 files updated, 0 files merged, 2 files removed, 0 files unresolved
created new head
merge
searching for copies back to rev 1
unmatched files in local:
c2
unmatched files in other:
b
b2
all copies found (* = to merge, ! = divergent):
c2 -> a2 !
b -> a *
b2 -> a2 !
checking for directory renames
a2: divergent renames -> dr
resolving manifests
overwrite None partial False
ancestor af1939970a1c local 044f8520aeeb+ remote 85c198ef2f6c
a: remote moved to b -> m
b2: remote created -> g
preserving a for resolve of b
removing a
update: a 1/3 files (33.33%)
picked tool 'internal:merge' for b (binary False symlink False)
merging a and b to b
my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
premerge successful
update: a2 2/3 files (66.67%)
warning: detected divergent renames of a2 to:
c2
b2
update: b2 3/3 files (100.00%)
getting b2
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
M b
a
M b2
R a
C c2
blahblah
rev offset length base linkrev nodeid p1 p2
0 0 67 0 1 57eacc201a7f 000000000000 000000000000
1 67 72 1 3 4727ba907962 000000000000 57eacc201a7f
b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66