[PATCH] status: support commands.status.relative config

Martin von Zweigbergk martinvonz at google.com
Wed Mar 22 04:35:04 UTC 2017


# HG changeset patch
# User Martin von Zweigbergk <martinvonz at google.com>
# Date 1490143844 25200
#      Tue Mar 21 17:50:44 2017 -0700
# Node ID e0e123324f205071c80657079ff83a4e58db862c
# Parent  102f291807c92864a2231e5e925d6cd64783bb59
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.

diff -r 102f291807c9 -r e0e123324f20 mercurial/commands.py
--- a/mercurial/commands.py	Mon Mar 20 16:34:12 2017 -0700
+++ b/mercurial/commands.py	Tue Mar 21 17:50:44 2017 -0700
@@ -4734,7 +4734,8 @@
     else:
         node1, node2 = scmutil.revpair(repo, revs)
 
-    if pats:
+    if pats or (not ui.plain() and
+                ui.configbool('commands', 'status.relative', False)):
         cwd = repo.getcwd()
     else:
         cwd = ''
diff -r 102f291807c9 -r e0e123324f20 mercurial/help/config.txt
--- a/mercurial/help/config.txt	Mon Mar 20 16:34:12 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``
diff -r 102f291807c9 -r e0e123324f20 tests/test-status.t
--- a/tests/test-status.t	Mon Mar 20 16:34:12 2017 -0700
+++ b/tests/test-status.t	Tue Mar 21 17:50:44 2017 -0700
@@ -40,6 +40,20 @@
   ? ../b/2/in_b_2
   ? ../b/in_b
   ? ../in_root
+  $ hg --config commands.status.relative=True 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 --config commands.status.relative=True 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
 
   $ hg status --cwd b
   ? a/1/in_a_1


More information about the Mercurial-devel mailing list