diff --git a/mercurial/configitems.py b/mercurial/configitems.py
index 1b91147094280e700dbac9b6b2eeee202333d367_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5..b38f5063a0c6e551c0c837a125c09afb463533d0_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5 100644
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -1289,6 +1289,12 @@
 )
 coreconfigitem(
     b'format',
+    b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet',
+    default=False,
+    experimental=True,
+)
+coreconfigitem(
+    b'format',
     b'use-dirstate-tracked-hint',
     default=False,
     experimental=True,
diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt
index 1b91147094280e700dbac9b6b2eeee202333d367_bWVyY3VyaWFsL2hlbHB0ZXh0L2NvbmZpZy50eHQ=..b38f5063a0c6e551c0c837a125c09afb463533d0_bWVyY3VyaWFsL2hlbHB0ZXh0L2NvbmZpZy50eHQ= 100644
--- a/mercurial/helptext/config.txt
+++ b/mercurial/helptext/config.txt
@@ -965,6 +965,9 @@
    `dirstate-v2` requirement if `format.use-dirstate-v2=no`. So we recommend
    setting both this value and `format.use-dirstate-v2` at the same time.
 
+``use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet``
+    Hide message when performing such automatic upgrade.
+
 ``use-dirstate-tracked-hint``
     Enable or disable the writing of "tracked key" file alongside the dirstate.
     (default to disabled)
diff --git a/mercurial/upgrade_utils/auto_upgrade.py b/mercurial/upgrade_utils/auto_upgrade.py
index 1b91147094280e700dbac9b6b2eeee202333d367_bWVyY3VyaWFsL3VwZ3JhZGVfdXRpbHMvYXV0b191cGdyYWRlLnB5..b38f5063a0c6e551c0c837a125c09afb463533d0_bWVyY3VyaWFsL3VwZ3JhZGVfdXRpbHMvYXV0b191cGdyYWRlLnB5 100644
--- a/mercurial/upgrade_utils/auto_upgrade.py
+++ b/mercurial/upgrade_utils/auto_upgrade.py
@@ -153,6 +153,10 @@
         b'format',
         b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories',
     )
+    auto_upgrade_dv2_quiet = ui.configbool(
+        b'format',
+        b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet',
+    )
 
     action = None
 
@@ -169,7 +173,7 @@
             )
 
             def action():
-                if not ui.quiet:
+                if not (ui.quiet or auto_upgrade_dv2_quiet):
                     ui.write_err(msg)
                     ui.write_err(hint)
                 requirements.add(requirementsmod.DIRSTATE_V2_REQUIREMENT)
@@ -186,7 +190,7 @@
             )
 
             def action():
-                if not ui.quiet:
+                if not (ui.quiet or auto_upgrade_dv2_quiet):
                     ui.write_err(msg)
                     ui.write_err(hint)
                 requirements.discard(requirementsmod.DIRSTATE_V2_REQUIREMENT)
diff --git a/tests/test-help.t b/tests/test-help.t
index 1b91147094280e700dbac9b6b2eeee202333d367_dGVzdHMvdGVzdC1oZWxwLnQ=..b38f5063a0c6e551c0c837a125c09afb463533d0_dGVzdHMvdGVzdC1oZWxwLnQ= 100644
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -1605,6 +1605,8 @@
   
       "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories"
   
+      "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet"
+  
       "use-dirstate-tracked-hint"
   
       "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories"
diff --git a/tests/test-upgrade-repo.t b/tests/test-upgrade-repo.t
index 1b91147094280e700dbac9b6b2eeee202333d367_dGVzdHMvdGVzdC11cGdyYWRlLXJlcG8udA==..b38f5063a0c6e551c0c837a125c09afb463533d0_dGVzdHMvdGVzdC11cGdyYWRlLXJlcG8udA== 100644
--- a/tests/test-upgrade-repo.t
+++ b/tests/test-upgrade-repo.t
@@ -2071,9 +2071,10 @@
   share-safe:         yes
   $ hg status -R auto-upgrade \
   >     --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \
+  >     --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet=yes \
   >     --config format.use-dirstate-v2=no \
   >     --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \
   >     --config format.use-dirstate-tracked-hint=yes \
   >     --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=no
@@ -2074,11 +2075,9 @@
   >     --config format.use-dirstate-v2=no \
   >     --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \
   >     --config format.use-dirstate-tracked-hint=yes \
   >     --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=no
-  automatically downgrading repository from the `dirstate-v2` feature
-  (see `hg help config.format.use-dirstate-v2` for details)
   automatically upgrading repository to the `tracked-hint` feature
   (see `hg help config.format.use-dirstate-tracked-hint` for details)
 
@@ -2089,9 +2088,10 @@
 
   $ hg status -R auto-upgrade \
   >     --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories=yes \
+  >     --config format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet=yes \
   >     --config format.use-dirstate-v2=yes \
   >     --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \
   >     --config format.use-dirstate-tracked-hint=no\
   >     --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
@@ -2092,11 +2092,9 @@
   >     --config format.use-dirstate-v2=yes \
   >     --config format.use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories=yes \
   >     --config format.use-dirstate-tracked-hint=no\
   >     --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
-  automatically upgrading repository to the `dirstate-v2` feature
-  (see `hg help config.format.use-dirstate-v2` 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 | egrep '(dirstate-v2|tracked|share-safe)'