Mercurial > hg
changeset 42297:62bb49a1d05d
context: default to using branch from dirstate only in workingctx
Same reasoning as previous commits: only the workingctx should know
about the dirstate.
committablectx now seems free of dirstate references.
Differential Revision: https://phab.mercurial-scm.org/D6374
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 10 May 2019 22:24:47 -0700 |
parents | df2f22befdc8 |
children | 9c7f58180878 |
files | mercurial/context.py |
diffstat | 1 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/context.py Fri May 10 22:51:33 2019 -0700 +++ b/mercurial/context.py Fri May 10 22:24:47 2019 -0700 @@ -1119,13 +1119,7 @@ self._extra = extra.copy() if branch is not None: self._extra['branch'] = encoding.fromlocal(branch) - elif 'branch' not in self._extra: - try: - branch = encoding.fromlocal(self._repo.dirstate.branch()) - except UnicodeDecodeError: - raise error.Abort(_('branch name not in UTF-8!')) - self._extra['branch'] = branch - if self._extra['branch'] == '': + if not self._extra.get('branch'): self._extra['branch'] = 'default' def __bytes__(self): @@ -1242,7 +1236,14 @@ """ def __init__(self, repo, text="", user=None, date=None, extra=None, changes=None): - super(workingctx, self).__init__(repo, text, user, date, extra, changes) + branch = None + if not extra or 'branch' not in extra: + try: + branch = repo.dirstate.branch() + except UnicodeDecodeError: + raise error.Abort(_('branch name not in UTF-8!')) + super(workingctx, self).__init__(repo, text, user, date, extra, changes, + branch=branch) def __iter__(self): d = self._repo.dirstate