subrepo: (mostly) use relative path in "skipping missing subrepository"
This is consistent with the other messages printed by these
functions. Note that addremove is a little different and prints
absolute (aka repo-relative) paths if no argument was given.
Differential Revision: https://phab.mercurial-scm.org/D5900
subrepo: use relative path for "already tracked" message
From
932de135041f (subrepo: warn when adding already tracked files in
gitsubrepo, 2015-02-27):
The file is printed with abs() to be consistent with how it is
printed in workingctx, even though that is inconsistent with how
added files are printed in verbose mode.
However, a few year later, the same author wrote
7008f6819002
(context: name files relative to cwd in warning messages, 2017-07-11)
and now it's inconsistent. This fixes that inconsistency.
Differential Revision: https://phab.mercurial-scm.org/D5899
diff: make `hg diff --root=subrepo` work
The root prefix is currently stripped before adding the subrepo
prefix. It seems to me that if you run `hg diff --root=subrepo` and a
subrepo/ path is visited (say "subrepo/foo"), then the path generated
for the diff would initially be just "foo" and we then fail (if the
developer warning is active) to strip the "subrepo/" from the path. It
seems like we should first add the prefix in order to produce a path
that's relative to the top-level repo, and then we can remove the root
prefix from that. There are no tests for this, it seems, and I don't
care enough to add one.
Differential Revision: https://phab.mercurial-scm.org/D5895
patch: replace "prefix" and "relroot" arguments by "pathfn" (API)
The two arguments serve a very similar purpose: "relroot" is stripped
from the front of the path, and then "prefix" (a subrepo path) is
added (also to the front). Passing in a function that does that is
more generic and will make it easier to respect ui.relative-paths in
later patches (don't worry, I'm not going to respect that option for
regular patches, only for --stat). I'm deliberately not calling it
"uipathfn", because it's generally for producing valid diffs
(including when prefix is non-empty), so things like using backslash
on Windows is not an option.
Differential Revision: https://phab.mercurial-scm.org/D5894