svnsubrepo: add new method _svnmissing
This is modelled after _gitmissing from
dea6efdd7ec4 and also
necessary for svn. I'm not sure exactly how this hasn't been more of a
problem for svn until now, actually.
svnsubrepo: decorate dirty method with annotatesubrepoerror
This function invokes svn commands which can error out in any number
of ways, so it's helpful to know in which subrepo this error happens.
match: do not weirdly include explicit files excluded by -X option
Actually, this was the original behavior. Before
a83a7d27911e, "log" and
"files" showed nothing if "FILE -X FILE" was specified, whereas "debugwalk"
got confused by an explicit FILE pattern. Under the hood, "log" and "files"
use m() and ctx.matches(m) respectively, and "debugwalk" uses ctx.walk(m).
I suspect dirstate.walk() goes wrong in _walkexplicit(), which seems to
blindly trust m.files().
I reckon the original "log"/"files" behavior is correct, and drop the hack
from the differencematcher.
lfs: add the '{oid}' template keyword to '{lfs_files}'
The 'sha256:' prefix is skipped because this seems like the most convenient way
to consume it. Maybe we should also add a '{oid_type}' keyword? Then again,
that can be added in the future if a different algorithm is supported.
lfs: convert '{lfs_files}' keyword to a hybrid list
This will allow more attributes about the file to be queried.
showstack: add an extension docstring
Now, running `hg help showstack` will give details on how to use the extension.
bookmark: run 'pushkey' hooks after bookmark move, not 'prepushkey'
This was a silly copy paste mistake.
Spotted by Mitchell Plamann from Jane Street.