[PATCH] blackbox: do not assume self._bb{vfs, repo, fp} are set in blackboxui.__init__

Jun Wu quark at fb.com
Tue Mar 15 06:36:59 EDT 2016


# HG changeset patch
# User Jun Wu <quark at fb.com>
# Date 1458038162 0
#      Tue Mar 15 10:36:02 2016 +0000
# Node ID a2a3a40aa29a33d6634170bbd5a6b6b8d042c9bf
# Parent  b22ab2690f3170dc5ef3a807d8c44af6fee862a9
blackbox: do not assume self._bb{vfs,repo,fp} are set in blackboxui.__init__

It's possible for the blackboxui code to do a "del self._bbvfs", then ui.copy()
or similar attempt will fail. It will also fail when constructing a blackboxui
from a non-blackbox ui.
This patch fixes the issue by not assuming any _bb* attr is set.

diff --git a/hgext/blackbox.py b/hgext/blackbox.py
--- a/hgext/blackbox.py
+++ b/hgext/blackbox.py
@@ -80,10 +80,10 @@
             if src is None:
                 self._partialinit()
             else:
-                self._bbfp = src._bbfp
+                self._bbfp = getattr(src, '_bbfp', None)
                 self._bbinlog = False
-                self._bbrepo = src._bbrepo
-                self._bbvfs = src._bbvfs
+                self._bbrepo = getattr(src, '_bbrepo', None)
+                self._bbvfs = getattr(src, '_bbvfs', None)
 
         def _partialinit(self):
             if util.safehasattr(self, '_bbvfs'):


More information about the Mercurial-devel mailing list