bookmark: deprecate direct set of a bookmark value
We want all bookmark update to go through 'applychanges', so lets deprecate
legacy ways of doing bookmark update.
--- a/mercurial/bookmarks.py Mon Jul 10 20:26:53 2017 +0200
+++ b/mercurial/bookmarks.py Mon Jul 10 21:47:34 2017 +0200
@@ -102,8 +102,14 @@
self._aclean = False
def __setitem__(self, *args, **kwargs):
+ msg = ("'bookmarks[name] = node' is deprecated, "
+ "use 'bookmarks.applychanges'")
+ self._repo.ui.deprecwarn(msg, '4.3')
+ self._set(*args, **kwargs)
+
+ def _set(self, key, value):
self._clean = False
- return dict.__setitem__(self, *args, **kwargs)
+ return dict.__setitem__(self, key, value)
def __delitem__(self, key):
self._clean = False
@@ -118,7 +124,7 @@
if node is None:
del self[name]
else:
- self[name] = node
+ self._set(name, node)
if bmchanges is not None:
# if a previous value exist preserve the "initial" value
previous = bmchanges.get(name)