diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -60,7 +60,7 @@ coreconfigitem('patch', 'fuzz', default=2, ) coreconfigitem('ui', 'clonebundleprefers', - default=[], + default=list, ) coreconfigitem('ui', 'interactive', default=None, diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -455,6 +455,8 @@ class ui(object): if default is _unset: if item is None: value = default + elif callable(item.default): + value = item.default() else: value = item.default elif item is not None: