diff mercurial/ui.py @ 26820:71d5238f92e9 stable

ui: support paths.default-push without paths.default set (issue4914) This behavior regressed as part of the paths API refactoring. Previous behavior was to accept "default-push" without "default" defined. Current behavior aborts with "default repository not configured!." This patch restores the old behavior and adds test coverage for the scenario, which was absent before.
author Gregory Szorc <gregory.szorc@gmail.com>
date Thu, 22 Oct 2015 18:59:03 +0000
parents 1aee2ab0f902
children 5e46123e6c35 00aa37c65e0a
line wrap: on
line diff
--- a/mercurial/ui.py	Wed Oct 21 16:21:27 2015 -0500
+++ b/mercurial/ui.py	Thu Oct 22 18:59:03 2015 +0000
@@ -1026,7 +1026,11 @@
         # Handle default-push, which is a one-off that defines the push URL for
         # the "default" path.
         defaultpush = ui.config('paths', 'default-push')
-        if defaultpush and 'default' in self:
+        if defaultpush:
+            # "default-push" can be defined without "default" entry. This is a
+            # bit weird, but is allowed for backwards compatibility.
+            if 'default' not in self:
+                self['default'] = path('default', rawloc=defaultpush)
             self['default']._pushloc = defaultpush
 
     def getpath(self, name, default=None):