Submitter | timeless@mozdev.org |
---|---|
Date | Feb. 24, 2016, 8:10 p.m. |
Message ID | <1408dd29b605c1789762.1456344652@waste.org> |
Download | mbox | patch |
Permalink | /patch/13373/ |
State | Accepted |
Headers | show |
Comments
On Wed, Feb 24, 2016 at 02:10:52PM -0600, timeless wrote: > # HG changeset patch > # User timeless <timeless@mozdev.org> > # Date 1454011703 0 > # Thu Jan 28 20:08:23 2016 +0000 > # Node ID 1408dd29b605c178976275bd7aca7d8f6a2629ca > # Parent c50b512bb9eb82a3a77b3c95f6335a100fb11ce9 > blackbox: retry opening the log file OOC, why retry? I feel like we could use some details here for future code archaeologists. > > diff --git a/hgext/blackbox.py b/hgext/blackbox.py > --- a/hgext/blackbox.py > +++ b/hgext/blackbox.py > @@ -150,15 +150,17 @@ > > if self._bbfp: > ui = self > - elif self._bbvfs: > + elif self._bbvfs or lastui and lastui._bbvfs: > + if self._bbvfs: > + ui = lastui = self > + else: > + ui = lastui > try: > - self._bbfp = self._openlogfile() > + ui._bbfp = ui._openlogfile() > except (IOError, OSError) as err: > self.debug('warning: cannot write to blackbox.log: %s\n' % > err.strerror) > - del self._bbvfs > - self._bbfp = None > - ui = self > + ui._bbfp = None > else: > # certain ui instances exist outside the context of > # a repo, so just default to the last blackbox that > diff --git a/tests/test-blackbox.t b/tests/test-blackbox.t > --- a/tests/test-blackbox.t > +++ b/tests/test-blackbox.t > @@ -94,6 +94,11 @@ > abort: *$TESTTMP/blackboxtest2/.hg/blackbox.log* (glob) > [255] > > + $ hg blackbox --debug > + warning: cannot write to blackbox.log: * (glob) > + abort: *: $TESTTMP/blackboxtest2/.hg/blackbox.log (glob) > + warning: cannot write to blackbox.log: * (glob) > + [255] > $ rmdir .hg/blackbox.log > $ mv .hg/blackbox.log- .hg/blackbox.log > > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@mercurial-scm.org > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Patch
diff --git a/hgext/blackbox.py b/hgext/blackbox.py --- a/hgext/blackbox.py +++ b/hgext/blackbox.py @@ -150,15 +150,17 @@ if self._bbfp: ui = self - elif self._bbvfs: + elif self._bbvfs or lastui and lastui._bbvfs: + if self._bbvfs: + ui = lastui = self + else: + ui = lastui try: - self._bbfp = self._openlogfile() + ui._bbfp = ui._openlogfile() except (IOError, OSError) as err: self.debug('warning: cannot write to blackbox.log: %s\n' % err.strerror) - del self._bbvfs - self._bbfp = None - ui = self + ui._bbfp = None else: # certain ui instances exist outside the context of # a repo, so just default to the last blackbox that diff --git a/tests/test-blackbox.t b/tests/test-blackbox.t --- a/tests/test-blackbox.t +++ b/tests/test-blackbox.t @@ -94,6 +94,11 @@ abort: *$TESTTMP/blackboxtest2/.hg/blackbox.log* (glob) [255] + $ hg blackbox --debug + warning: cannot write to blackbox.log: * (glob) + abort: *: $TESTTMP/blackboxtest2/.hg/blackbox.log (glob) + warning: cannot write to blackbox.log: * (glob) + [255] $ rmdir .hg/blackbox.log $ mv .hg/blackbox.log- .hg/blackbox.log