diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -5845,7 +5845,8 @@ def status(ui, repo, *pats, **opts): opts.get('subrepos')) changestates = zip(states, 'MAR!?IC', stat) - if (opts.get('all') or opts.get('copies')) and not opts.get('no_status'): + if (opts.get('all') or opts.get('copies') + or ui.configbool('ui', 'statuscopies')) and not opts.get('no_status'): copy = copies.pathcopies(repo[node1], repo[node2]) fm = ui.formatter('status', opts) diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt --- a/mercurial/help/config.txt +++ b/mercurial/help/config.txt @@ -1432,6 +1432,9 @@ User interface controls. backslash character (``\``)). Default is False. +``statuscopies`` + Display copies in the status command. + ``ssh`` command to use for SSH connections. Default is ``ssh``. diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -158,7 +158,7 @@ class ui(object): if self.plain(): for k in ('debug', 'fallbackencoding', 'quiet', 'slash', - 'logtemplate', 'style', + 'logtemplate', 'statuscopies', 'style', 'traceback', 'verbose'): if k in cfg['ui']: del cfg['ui'][k] diff --git a/tests/test-status.t b/tests/test-status.t --- a/tests/test-status.t +++ b/tests/test-status.t @@ -438,6 +438,15 @@ without force b R b +using ui.statuscopies setting + $ hg st --config ui.statuscopies=true + M a + b + R b + $ hg st --config ui.statuscopies=false + M a + R b + Other "bug" highlight, the revision status does not report the copy information. This is buggy behavior.