cmdstate: avoid setting a default argument to a mutable object (`{}`)
If there's ever more than one cmdstate for the lifetime of the process, this can
cause surprising behavior where the later cmdstates pick up options from the
earlier ones.
I've not seen any evidence this is actually causing any issues, but it's subtle
enough that it should probably be fixed to help save significant debugging time
later.
# Copyright 2017 FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
"""
Compatibility module
"""
from __future__ import absolute_import
from mercurial import (
obsolete,
pycompat,
)
getmarkers = None
successorssets = None
try:
from mercurial import obsutil
getmarkers = getattr(obsutil, 'getmarkers', None)
successorssets = getattr(obsutil, 'successorssets', None)
except ImportError:
pass
if getmarkers is None:
getmarkers = obsolete.getmarkers
if successorssets is None:
successorssets = obsolete.successorssets
if pycompat.ispy3:
def branchmapitems(branchmap):
return branchmap.items()
else:
# py3-transform: off
def branchmapitems(branchmap):
return branchmap.iteritems()
# py3-transform: on