test-convert-svn-move: sort svn checkout output
It turns out that there's no guarantee in which order svn will
traverse a directory while performing a checkout. Sorting the output
will make these tests stable.
fileset: do not crash by unary negate operation
Backported from minifileset.py.
fileset: make it robust for bad function calls
Before, it could crash or show cryptic message.
log: build follow-log filematcher at once
We no longer need to replay copy tracing to build filematcher as we can
walk (rev, fctxs) pairs.
log: allow matchfn to be non-null even if both --patch/--stat are off
This makes the next patch slightly simpler.
log: replace "not pats" with matcher attribute for consistency
We use match.always() in _makelogrevset(). match.always() is identical to
"not pats" here since scmutil.matchandpats() empties pats in that case.
log: follow file history across copies even with -rREV (BC) (
issue4959)
Still it falls back to changelog path if glob patterns or missing paths
are specified. This will be changed later.
.. bc::
``log --follow -rREV FILE..`` now follows file history across copies and
renames.
log: resolve --follow thoroughly in getlogrevs()
This makes sense because --follow isn't really an option to filter revisions,
but an option to extend revisions to be filtered.
_fileancestors() is a minimal copy of revset._follow(). They are slightly
different in that which revision the matcher sees. _fileancestors() also
uses ctx.walk() instead of ctx.manifest().walk() to show a better warning
on bad match, which will be tested later.
log: extract function that processes log file patterns
We'll need a matcher to compute revs followed from the given patterns.