diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py
index 57a4adbef74d27108e0cdaa25d80cba58b312536_bWVyY3VyaWFsL2RlYnVnY29tbWFuZHMucHk=..8dede0df9de97c003e13ee2e007a45678f5c8b6b_bWVyY3VyaWFsL2RlYnVnY29tbWFuZHMucHk= 100644
--- a/mercurial/debugcommands.py
+++ b/mercurial/debugcommands.py
@@ -1625,8 +1625,12 @@
     )
 
 
-@command(b'debugformat', [] + cmdutil.formatteropts)
-def debugformat(ui, repo, **opts):
+@command(
+    b'debugformat',
+    [] + cmdutil.formatteropts,
+    b'[PATTERN] ... [PATTERN]',
+)
+def debugformat(ui, repo, *patterns, **opts):
     """display format information about the current repository
 
     Use --verbose to get extra information about current config value and
@@ -1630,7 +1634,11 @@
     """display format information about the current repository
 
     Use --verbose to get extra information about current config value and
-    Mercurial default."""
+    Mercurial default.
+
+    If patterns are specified, only format matching at least one of these
+    pattern will be displayed.
+    """
     maxvariantlength = max(len(fv.name) for fv in upgrade.allformatvariant)
     maxvariantlength = max(len(b'format-variant'), maxvariantlength)
 
@@ -1658,6 +1666,14 @@
         fm.plain(b' config default')
     fm.plain(b'\n')
     for fv in upgrade.allformatvariant:
+        if patterns:
+            for p in patterns:
+                # XXX support "re:" at some point
+                if p in fv.name:
+                    break
+            else:
+                # no pattern matches, continue
+                continue
         fm.startitem()
         repovalue = fv.fromrepo(repo)
         configvalue = fv.fromconfig(repo)
diff --git a/tests/test-copies-chain-merge.t b/tests/test-copies-chain-merge.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1jb3BpZXMtY2hhaW4tbWVyZ2UudA==..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1jb3BpZXMtY2hhaW4tbWVyZ2UudA== 100644
--- a/tests/test-copies-chain-merge.t
+++ b/tests/test-copies-chain-merge.t
@@ -1649,7 +1649,8 @@
   > [format]
   > exp-use-copies-side-data-changeset = yes
   > EOF
-  $ hg debugformat -v | grep -E 'changelog-v2|revlog-v2|copies-sdc'
+  $ hg debugformat -v changelog-v2 revlog-v2 copies-sdc
+  format-variant     repo config default
   copies-sdc:          no    yes      no
   revlog-v2:           no     no      no
   changelog-v2:        no    yes      no
@@ -1675,7 +1676,8 @@
   > enabled=yes
   > numcpus=8
   > EOF
-  $ hg debugformat -v  | grep -E 'changelog-v2|revlog-v2|copies-sdc'
+  $ hg debugformat -v changelog-v2 revlog-v2 copies-sdc
+  format-variant     repo config default
   copies-sdc:          no    yes      no
   revlog-v2:           no     no      no
   changelog-v2:        no    yes      no
diff --git a/tests/test-copies-in-changeset.t b/tests/test-copies-in-changeset.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1jb3BpZXMtaW4tY2hhbmdlc2V0LnQ=..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1jb3BpZXMtaW4tY2hhbmdlc2V0LnQ= 100644
--- a/tests/test-copies-in-changeset.t
+++ b/tests/test-copies-in-changeset.t
@@ -32,9 +32,9 @@
   $ hg init repo
   $ cd repo
 #if sidedata
-  $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2'
+  $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2
   format-variant     repo config default
   copies-sdc:         yes    yes      no
   revlog-v2:           no     no      no
   changelog-v2:       yes    yes      no
 #else
@@ -36,9 +36,9 @@
   format-variant     repo config default
   copies-sdc:         yes    yes      no
   revlog-v2:           no     no      no
   changelog-v2:       yes    yes      no
 #else
-  $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2'
+  $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2
   format-variant     repo config default
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
@@ -419,7 +419,7 @@
 
 downgrading
 
-  $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2'
+  $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2
   format-variant     repo config default
   copies-sdc:         yes    yes      no
   revlog-v2:           no     no      no
@@ -445,7 +445,7 @@
   processed revlogs:
     - changelog
   
-  $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2'
+  $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2
   format-variant     repo config default
   copies-sdc:          no     no      no
   revlog-v2:           no     no      no
@@ -470,7 +470,7 @@
   processed revlogs:
     - changelog
   
-  $ hg debugformat -v | grep -E 'format-variant|revlog-v2|copies-sdc|changelog-v2'
+  $ hg debugformat -v format-variant revlog-v2 copies-sdc changelog-v2
   format-variant     repo config default
   copies-sdc:         yes    yes      no
   revlog-v2:           no     no      no
diff --git a/tests/test-persistent-nodemap.t b/tests/test-persistent-nodemap.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1wZXJzaXN0ZW50LW5vZGVtYXAudA==..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1wZXJzaXN0ZW50LW5vZGVtYXAudA== 100644
--- a/tests/test-persistent-nodemap.t
+++ b/tests/test-persistent-nodemap.t
@@ -615,6 +615,7 @@
   $ hg share race-repo ./other-wc --config format.use-share-safe=yes
   updating working directory
   5001 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ hg debugformat -R ./race-repo | grep -E 'share-safe|persistent-nodemap'
+  $ hg debugformat -R ./race-repo share-safe persistent-nodemap
+  format-variant     repo
   share-safe:         yes
   persistent-nodemap: yes
@@ -619,6 +620,7 @@
   share-safe:         yes
   persistent-nodemap: yes
-  $ hg debugformat -R ./other-wc/ | grep -E 'share-safe|persistent-nodemap'
+  $ hg debugformat -R ./other-wc/ share-safe persistent-nodemap
+  format-variant     repo
   share-safe:         yes
   persistent-nodemap: yes
   $ hg -R ./other-wc update 'min(head())'
diff --git a/tests/test-pullling-to-general-delta.t b/tests/test-pullling-to-general-delta.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1wdWxsbGluZy10by1nZW5lcmFsLWRlbHRhLnQ=..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1wdWxsbGluZy10by1nZW5lcmFsLWRlbHRhLnQ= 100644
--- a/tests/test-pullling-to-general-delta.t
+++ b/tests/test-pullling-to-general-delta.t
@@ -19,7 +19,8 @@
   $ hg init server
 
   $ hg clone --quiet --pull server client --config format.usegeneraldelta=no
-  $ hg debugformat -R client | grep generaldelta
+  $ hg debugformat -R client generaldelta
+  format-variant     repo
   generaldelta:        no
 
 Create some complexe history
diff --git a/tests/test-revlog-delta-find.t b/tests/test-revlog-delta-find.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1yZXZsb2ctZGVsdGEtZmluZC50..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1yZXZsb2ctZGVsdGEtZmluZC50 100644
--- a/tests/test-revlog-delta-find.t
+++ b/tests/test-revlog-delta-find.t
@@ -334,7 +334,8 @@
   >    --config format.usegeneraldelta=no \
   >    --config format.sparse-revlog=no \
   >    local-forced-full-p1-no-gd
-  $ hg debugformat -R local-forced-full-p1-no-gd | grep generaldelta
+  $ hg debugformat -R local-forced-full-p1-no-gd generaldelta
+  format-variant     repo
   generaldelta:        no
   $ hg -R local-forced-full-p1-no-gd pull --quiet local-pre-pull-full \
   >    --config debug.revlog.debug-delta=no
diff --git a/tests/test-share-safe.t b/tests/test-share-safe.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1zaGFyZS1zYWZlLnQ=..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1zaGFyZS1zYWZlLnQ= 100644
--- a/tests/test-share-safe.t
+++ b/tests/test-share-safe.t
@@ -631,7 +631,8 @@
   $ hg debugbuilddag -R auto-upgrade --new-file .+5
   $ hg -R auto-upgrade update
   6 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ hg debugformat -R auto-upgrade | grep share-safe
+  $ hg debugformat -R auto-upgrade share-safe
+  format-variant     repo
   share-safe:          no
 
 upgrade it to share-safe automatically
@@ -641,7 +642,8 @@
   >     --config format.use-share-safe=yes
   automatically upgrading repository to the `share-safe` feature
   (see `hg help config.format.use-share-safe` for details)
-  $ hg debugformat -R auto-upgrade | grep share-safe
+  $ hg debugformat -R auto-upgrade share-safe
+  format-variant     repo
   share-safe:         yes
 
 downgrade it from share-safe automatically
@@ -651,5 +653,6 @@
   >     --config format.use-share-safe=no
   automatically downgrading repository from the `share-safe` feature
   (see `hg help config.format.use-share-safe` for details)
-  $ hg debugformat -R auto-upgrade | grep share-safe
+  $ hg debugformat -R auto-upgrade share-safe
+  format-variant     repo
   share-safe:          no
diff --git a/tests/test-share.t b/tests/test-share.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1zaGFyZS50..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1zaGFyZS50 100644
--- a/tests/test-share.t
+++ b/tests/test-share.t
@@ -295,9 +295,10 @@
 #endif
 
   $ hg init repo-safe-d1 --config format.use-share-safe=yes --config format.exp-rc-dirstate-v2=no
-  $ hg debugformat -R repo-safe-d1 | grep dirstate-v2
+  $ hg debugformat -R repo-safe-d1 dirstate-v2
+  format-variant     repo
   dirstate-v2:         no
 
   $ hg share repo-safe-d1 share-safe-d2 --config format.use-share-safe=yes --config format.exp-rc-dirstate-v2=yes
   updating working directory
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -299,7 +300,8 @@
   dirstate-v2:         no
 
   $ hg share repo-safe-d1 share-safe-d2 --config format.use-share-safe=yes --config format.exp-rc-dirstate-v2=yes
   updating working directory
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ hg debugformat  -R share-safe-d2 | grep dirstate-v2
+  $ hg debugformat  -R share-safe-d2 dirstate-v2
+  format-variant     repo
   dirstate-v2:        yes
diff --git a/tests/test-sidedata.t b/tests/test-sidedata.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1zaWRlZGF0YS50..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1zaWRlZGF0YS50 100644
--- a/tests/test-sidedata.t
+++ b/tests/test-sidedata.t
@@ -61,6 +61,7 @@
 -------------------------------------
 
   $ hg init up-no-side-data --config experimental.revlogv2=no
-  $ hg debugformat -v -R up-no-side-data | grep -E 'changelog-v2|revlog-v2'
+  $ hg debugformat -v -R up-no-side-data changelog-v2 revlog-v2
+  format-variant     repo config default
   revlog-v2:           no     no      no
   changelog-v2:        no     no      no
@@ -65,6 +66,7 @@
   revlog-v2:           no     no      no
   changelog-v2:        no     no      no
-  $ hg debugformat -v -R up-no-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data | grep -E 'changelog-v2|revlog-v2'
+  $ hg debugformat -v -R up-no-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data changelog-v2 revlog-v2
+  format-variant     repo config default
   revlog-v2:           no    yes      no
   changelog-v2:        no     no      no
   $ hg debugupgraderepo -R up-no-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data > /dev/null
@@ -73,6 +75,7 @@
 -----------------------------------------
 
   $ hg init up-side-data --config experimental.revlogv2=enable-unstable-format-and-corrupt-my-data
-  $ hg debugformat -v -R up-side-data | grep -E 'changelog-v2|revlog-v2'
+  $ hg debugformat -v -R up-side-data changelog-v2 revlog-v2
+  format-variant     repo config default
   revlog-v2:          yes     no      no
   changelog-v2:        no     no      no
@@ -77,6 +80,7 @@
   revlog-v2:          yes     no      no
   changelog-v2:        no     no      no
-  $ hg debugformat -v -R up-side-data --config experimental.revlogv2=no | grep -E 'changelog-v2|revlog-v2'
+  $ hg debugformat -v -R up-side-data --config experimental.revlogv2=no changelog-v2 revlog-v2
+  format-variant     repo config default
   revlog-v2:          yes     no      no
   changelog-v2:        no     no      no
   $ hg debugupgraderepo -R up-side-data --config experimental.revlogv2=no > /dev/null
diff --git a/tests/test-status-tracked-key.t b/tests/test-status-tracked-key.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC1zdGF0dXMtdHJhY2tlZC1rZXkudA==..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC1zdGF0dXMtdHJhY2tlZC1rZXkudA== 100644
--- a/tests/test-status-tracked-key.t
+++ b/tests/test-status-tracked-key.t
@@ -211,7 +211,8 @@
   $ hg debugbuilddag -R auto-upgrade --new-file .+5
   $ hg -R auto-upgrade update
   6 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ hg debugformat -R auto-upgrade | grep tracked
+  $ hg debugformat -R auto-upgrade tracked-hint
+  format-variant     repo
   tracked-hint:        no
 
 upgrade it to dirstate-tracked-hint automatically
@@ -221,7 +222,8 @@
   > --config format.use-dirstate-tracked-hint=yes
   automatically upgrading repository to the `tracked-hint` feature
   (see `hg help config.format.use-dirstate-tracked-hint` for details)
-  $ hg debugformat -R auto-upgrade | grep tracked
+  $ hg debugformat -R auto-upgrade tracked-hint
+  format-variant     repo
   tracked-hint:       yes
 
 rhg supports this feature
@@ -236,5 +238,6 @@
   > --config format.use-dirstate-tracked-hint=no
   automatically downgrading repository from the `tracked-hint` feature
   (see `hg help config.format.use-dirstate-tracked-hint` for details)
-  $ hg debugformat -R auto-upgrade | grep tracked
+  $ hg debugformat -R auto-upgrade tracked
+  format-variant     repo
   tracked-hint:        no
diff --git a/tests/test-upgrade-repo.t b/tests/test-upgrade-repo.t
index 57a4adbef74d27108e0cdaa25d80cba58b312536_dGVzdHMvdGVzdC11cGdyYWRlLXJlcG8udA==..8dede0df9de97c003e13ee2e007a45678f5c8b6b_dGVzdHMvdGVzdC11cGdyYWRlLXJlcG8udA== 100644
--- a/tests/test-upgrade-repo.t
+++ b/tests/test-upgrade-repo.t
@@ -61,5 +61,6 @@
   
   no revlogs to process
   
-  $ hg debugformat -R share-child | grep dirstate-v2
+  $ hg debugformat -R share-child dirstate-v2
+  format-variant     repo
   dirstate-v2:        yes
@@ -65,5 +66,6 @@
   dirstate-v2:        yes
-  $ hg debugformat -R share-parent | grep dirstate-v2
+  $ hg debugformat -R share-parent dirstate-v2
+  format-variant     repo
   dirstate-v2:         no
   $ hg status --all -R share-child
   C nf0
@@ -131,5 +133,6 @@
   
   no revlogs to process
   
-  $ hg debugformat -R share-child | grep dirstate-v2
+  $ hg debugformat -R share-child dirstate-v2
+  format-variant     repo
   dirstate-v2:         no
@@ -135,5 +138,6 @@
   dirstate-v2:         no
-  $ hg debugformat -R share-parent | grep dirstate-v2
+  $ hg debugformat -R share-parent dirstate-v2
+  format-variant     repo
   dirstate-v2:         no
   $ hg status --all -R share-child
   C nf0
@@ -1869,7 +1873,8 @@
 
 Upgrade to dirstate-v2
 
-  $ hg debugformat -v --config format.use-dirstate-v2=1 | grep dirstate-v2
+  $ hg debugformat -v --config format.use-dirstate-v2=1 dirstate-v2
+  format-variant     repo config default
   dirstate-v2:         no    yes      no
   $ hg debugupgraderepo --config format.use-dirstate-v2=1 --run
   upgrade will perform the following actions:
@@ -1892,7 +1897,8 @@
   removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
   $ ls .hg/upgradebackup.*/dirstate
   .hg/upgradebackup.*/dirstate (glob)
-  $ hg debugformat -v | grep dirstate-v2
+  $ hg debugformat -v dirstate-v2
+  format-variant     repo config default
   dirstate-v2:        yes     no      no
   $ hg status
   $ dd bs=12 count=1 if=.hg/dirstate 2> /dev/null
@@ -1916,7 +1922,8 @@
   downgrading from dirstate-v2 to v1
   replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
   removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
-  $ hg debugformat -v | grep dirstate-v2
+  $ hg debugformat -v dirstate-v2
+  format-variant     repo config default
   dirstate-v2:         no     no      no
   $ hg status
 
@@ -1927,7 +1934,8 @@
 
   $ hg init --config format.use-dirstate-v2=no dirstate-v2-empty
   $ cd dirstate-v2-empty
-  $ hg debugformat | grep dirstate-v2
+  $ hg debugformat dirstate-v2
+  format-variant     repo
   dirstate-v2:         no
 
 upgrade
@@ -1951,7 +1959,8 @@
   upgrading to dirstate-v2 from v1
   replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob)
   removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob)
-  $ hg debugformat | grep dirstate-v2
+  $ hg debugformat dirstate-v2
+  format-variant     repo
   dirstate-v2:        yes
 
 downgrade
@@ -1972,7 +1981,8 @@
   downgrading from dirstate-v2 to v1
   replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob)
   removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob)
-  $ hg debugformat | grep dirstate-v2
+  $ hg debugformat dirstate-v2
+  format-variant     repo
   dirstate-v2:         no
 
   $ cd ..
@@ -1993,7 +2003,8 @@
   $ hg debugbuilddag -R auto-upgrade --new-file .+5
   $ hg -R auto-upgrade update
   6 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ hg debugformat -R auto-upgrade | grep dirstate-v2
+  $ hg debugformat -R auto-upgrade dirstate-v2
+  format-variant     repo
   dirstate-v2:         no
 
 upgrade it to dirstate-v2 automatically
@@ -2003,7 +2014,8 @@
   >     --config format.use-dirstate-v2=yes
   automatically upgrading repository to the `dirstate-v2` feature
   (see `hg help config.format.use-dirstate-v2` for details)
-  $ hg debugformat -R auto-upgrade | grep dirstate-v2
+  $ hg debugformat -R auto-upgrade dirstate-v2
+  format-variant     repo
   dirstate-v2:        yes
 
 downgrade it from dirstate-v2 automatically
@@ -2013,10 +2025,11 @@
   >     --config format.use-dirstate-v2=no
   automatically downgrading repository from the `dirstate-v2` feature
   (see `hg help config.format.use-dirstate-v2` for details)
-  $ hg debugformat -R auto-upgrade | grep dirstate-v2
+  $ hg debugformat -R auto-upgrade dirstate-v2
+  format-variant     repo
   dirstate-v2:         no
 
 
 For multiple change at the same time
 ------------------------------------
 
@@ -2017,10 +2030,11 @@
   dirstate-v2:         no
 
 
 For multiple change at the same time
 ------------------------------------
 
-  $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)'
+  $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe
+  format-variant     repo
   dirstate-v2:         no
   tracked-hint:       yes
   share-safe:          no
@@ -2038,7 +2052,8 @@
   (see `hg help config.format.use-share-safe` for details)
   automatically downgrading repository from the `tracked-hint` feature
   (see `hg help config.format.use-dirstate-tracked-hint` for details)
-  $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)'
+  $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe
+  format-variant     repo
   dirstate-v2:        yes
   tracked-hint:        no
   share-safe:         yes
@@ -2047,7 +2062,8 @@
 ---------------------------
 
 
-  $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)'
+  $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe
+  format-variant     repo
   dirstate-v2:        yes
   tracked-hint:        no
   share-safe:         yes
@@ -2062,7 +2078,8 @@
   >     --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet=yes \
   >     --config format.use-share-safe=no
 
-  $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)'
+  $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe
+  format-variant     repo
   dirstate-v2:         no
   tracked-hint:       yes
   share-safe:          no
@@ -2077,7 +2094,8 @@
   >     --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories=yes \
   >     --config format.use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet=yes \
   >     --config format.use-share-safe=yes
-  $ hg debugformat -R auto-upgrade | grep -E '(dirstate-v2|tracked|share-safe)'
+  $ hg debugformat -R auto-upgrade dirstate-v2 tracked share-safe
+  format-variant     repo
   dirstate-v2:        yes
   tracked-hint:        no
   share-safe:         yes
@@ -2092,7 +2110,8 @@
   $ hg status -R auto-upgrade \
   >     --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \
   >     --config format.use-dirstate-v2=no
-  $ hg debugformat -R auto-upgrade | grep dirstate-v2
+  $ hg debugformat -R auto-upgrade dirstate-v2
+  format-variant     repo
   dirstate-v2:        yes
 
   $ chmod -R u+w auto-upgrade
@@ -2107,7 +2126,8 @@
   $ hg status -R auto-upgrade \
   >     --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \
   >     --config format.use-dirstate-v2=no
-  $ hg debugformat -R auto-upgrade | grep dirstate-v2
+  $ hg debugformat -R auto-upgrade dirstate-v2
+  format-variant     repo
   dirstate-v2:        yes
 
   $ killdaemons.py