# HG changeset patch # User Pierre-Yves David # Date 1444876140 -3600 # Node ID ea390d889d3a7433ef2c3a629f81eb71f5459af0 # Parent 74ff350c208c1600bfa9aebf7956f02922104687 bundle2: gracefully skip 'obsmarkers' part if evolution is disabled We would skip the part if it was fully unknown, so we should also skip it if we know we won't be able to apply it. This will allow us to produce bundles with obsolescence markers alongside changegroup while still being able to apply them on any client. diff -r 74ff350c208c -r ea390d889d3a mercurial/bundle2.py --- a/mercurial/bundle2.py Thu Oct 15 12:45:34 2015 +0100 +++ b/mercurial/bundle2.py Thu Oct 15 03:29:00 2015 +0100 @@ -1481,6 +1481,11 @@ if op.ui.config('experimental', 'obsmarkers-exchange-debug', False): op.ui.write(('obsmarker-exchange: %i bytes received\n') % len(markerdata)) + # The mergemarkers call will crash if marker creation is not enabled. + # we want to avoid this if the part is advisory. + if not inpart.mandatory and op.repo.obsstore.readonly: + op.repo.ui.debug('ignoring obsolescence markers, feature not enabled') + return new = op.repo.obsstore.mergemarkers(tr, markerdata) if new: op.repo.ui.status(_('%i new obsolescence markers\n') % new)