diff mercurial/repair.py @ 23939:33d1b81c6ef0 stable

repair._bundle: fix traceback for bad config value On IRC, rom1dep reported a traceback[1] from setting experimental.strip-bundle2-version to True. This diff catches unexpected values and falls back to the non-experimental bundle1 implementation after issuing a warning. [1] http://gist.tamytro.org/_admin/gists/qXcdQLwtApgy6e3NwWgl
author Eric Sumner <ericsumner@fb.com>
date Wed, 21 Jan 2015 15:54:52 -0800
parents b21c2e0ee8a3
children fbc4d550a6ab
line wrap: on
line diff
--- a/mercurial/repair.py	Wed Jan 21 21:47:27 2015 +0100
+++ b/mercurial/repair.py	Wed Jan 21 15:54:52 2015 -0800
@@ -17,6 +17,12 @@
                   repo.ui.config('experimental', 'strip-bundle2-version'))
     if usebundle2:
         cgversion = repo.ui.config('experimental', 'strip-bundle2-version')
+        if cgversion not in changegroup.packermap:
+            repo.ui.warn(_('unknown strip-bundle2-version value %r; ' +
+                            'should be one of %r\n') %
+                         (cgversion, sorted(changegroup.packermap.keys()),))
+            cgversion = '01'
+            usebundle2 = False
     else:
         cgversion = '01'