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