Mercurial > public > mercurial-scm > hg-stable
diff hgext/blackbox.py @ 34306:b1d4ac068961
blackbox: do not prevent 'chg init' from working
Previously, blackbox always appends to blackbox.log and creates the
directory for that file on demand. That could be an issue if:
1. chg starts from `$REPO` directory, so `ui._bbrepo` is set.
2. `rm -rf $REPO`.
3. `chg init $REPO`, blackbox writes something and `init` will fail
because `$REPO` directory is non-empty.
This patch fixes that by verifying whether vfs exists before re-using it.
Differential Revision: https://phab.mercurial-scm.org/D768
author | Jun Wu <quark@fb.com> |
---|---|
date | Thu, 21 Sep 2017 11:03:37 -0700 |
parents | b90bd9a98c8b |
children | e6723c939344 |
line wrap: on
line diff
--- a/hgext/blackbox.py Mon Sep 11 20:07:41 2017 -0400 +++ b/hgext/blackbox.py Thu Sep 21 11:03:37 2017 -0700 @@ -77,9 +77,13 @@ class blackboxui(ui.__class__): @property def _bbvfs(self): + vfs = None repo = getattr(self, '_bbrepo', None) if repo: - return repo.vfs + vfs = repo.vfs + if not vfs.isdir('.'): + vfs = None + return vfs @util.propertycache def track(self): @@ -136,6 +140,10 @@ if not ui: return + vfs = ui._bbvfs + if not vfs: + return + repo = getattr(ui, '_bbrepo', None) if not lastui or repo: lastui = ui