status: support commands.status.relative config
When the config is set to true, status output becomes relative to the
working directory. This has bugged me since I started using hg and it
turns it is sillily simple to support it (unless I missed something,
of course).
We could also add a --relative flag, but I would personally always
want that on, and I haven't heard any use for having it sometimes on,
so this patch only lets you enable it via config.
--- a/mercurial/commands.py Tue Mar 21 21:26:52 2017 -0700
+++ b/mercurial/commands.py Tue Mar 21 17:50:44 2017 -0700
@@ -4734,7 +4734,7 @@
else:
node1, node2 = scmutil.revpair(repo, revs)
- if pats:
+ if pats or ui.configbool('commands', 'status.relative'):
cwd = repo.getcwd()
else:
cwd = ''
--- a/mercurial/help/config.txt Tue Mar 21 21:26:52 2017 -0700
+++ b/mercurial/help/config.txt Tue Mar 21 17:50:44 2017 -0700
@@ -417,6 +417,10 @@
``commands``
----------
+``status.relative``
+ Make paths in ``hg status`` output relative to the current directory.
+ (default: False)
+
``update.requiredest``
Require that the user pass a destination when running ``hg update``.
For example, ``hg update .::`` will be allowed, but a plain ``hg update``
--- a/tests/test-status.t Tue Mar 21 21:26:52 2017 -0700
+++ b/tests/test-status.t Tue Mar 21 17:50:44 2017 -0700
@@ -107,6 +107,27 @@
? a/in_a
? b/in_b
+relative paths can be requested
+
+ $ cat >> $HGRCPATH <<EOF
+ > [commands]
+ > status.relative = True
+ > EOF
+ $ hg status --cwd a
+ ? 1/in_a_1
+ ? in_a
+ ? ../b/1/in_b_1
+ ? ../b/2/in_b_2
+ ? ../b/in_b
+ ? ../in_root
+ $ HGPLAIN=1 hg status --cwd a
+ ? a/1/in_a_1
+ ? a/in_a
+ ? b/1/in_b_1
+ ? b/2/in_b_2
+ ? b/in_b
+ ? in_root
+
$ cd ..
$ hg init repo2