diff -r 6786c3f8684d -r ff5d5751fc1b mercurial/bundlerepo.py --- a/mercurial/bundlerepo.py Tue Aug 02 14:48:21 2016 +0200 +++ b/mercurial/bundlerepo.py Wed Aug 03 16:42:10 2016 +0200 @@ -480,7 +480,14 @@ if bundlename or not localrepo: # create a bundle (uncompressed if other repo is not local) - canbundle2 = (ui.configbool('experimental', 'bundle2-exp', True) + # developer config: devel.legacy.exchange + legexc = ui.configlist('devel', 'legacy.exchange') + if not legexc: + forcebundle1 = not ui.configbool('experimental', 'bundle2-exp', + True) + else: + forcebundle1 = 'bundle2' not in legexc and 'bundle1' in legexc + canbundle2 = (not forcebundle1 and other.capable('getbundle') and other.capable('bundle2')) if canbundle2: