Mercurial > hg
changeset 4179:7e1c8a565a4f
Move branch read/write to dirstate where it belongs
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Tue, 13 Mar 2007 18:50:02 -0500 |
parents | 0b48e3985765 |
children | f80cf8b7bbd9 |
files | mercurial/commands.py mercurial/context.py mercurial/dirstate.py mercurial/merge.py tests/test-newbranch |
diffstat | 5 files changed, 21 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Tue Mar 13 15:47:55 2007 -0500 +++ b/mercurial/commands.py Tue Mar 13 18:50:02 2007 -0500 @@ -255,12 +255,10 @@ current branch name. """ - if label is not None: - repo.opener("branch", "w").write(util.fromlocal(label) + '\n') + if label: + repo.dirstate.setbranch(util.fromlocal(label)) else: - b = util.tolocal(repo.workingctx().branch()) - if b: - ui.write("%s\n" % b) + ui.write("%s\n" % util.tolocal(repo.dirstate.branch())) def branches(ui, repo): """list repository named branches
--- a/mercurial/context.py Tue Mar 13 15:47:55 2007 -0500 +++ b/mercurial/context.py Tue Mar 13 18:50:02 2007 -0500 @@ -411,11 +411,7 @@ def deleted(self): return self._status[3] def unknown(self): return self._status[4] def clean(self): return self._status[5] - def branch(self): - try: - return self._repo.opener("branch").read().strip() or "default" - except IOError: - return "default" + def branch(self): return self._repo.dirstate.branch() def parents(self): """return contexts for each parent changeset"""
--- a/mercurial/dirstate.py Tue Mar 13 15:47:55 2007 -0500 +++ b/mercurial/dirstate.py Tue Mar 13 18:50:02 2007 -0500 @@ -25,6 +25,7 @@ self.dirs = None self.copymap = {} self.ignorefunc = None + self._branch = None def wjoin(self, f): return os.path.join(self.root, f) @@ -137,6 +138,15 @@ self.lazyread() return self.pl + def branch(self): + if not self._branch: + try: + self._branch = self.opener("branch").read().strip()\ + or "default" + except IOError: + self._branch = "default" + return self._branch + def markdirty(self): if not self.dirty: self.dirty = 1 @@ -146,6 +156,10 @@ self.markdirty() self.pl = p1, p2 + def setbranch(self, branch): + self._branch = branch + self.opener("branch", "w").write(branch + '\n') + def state(self, key): try: return self[key][0]
--- a/mercurial/merge.py Tue Mar 13 15:47:55 2007 -0500 +++ b/mercurial/merge.py Tue Mar 13 18:50:02 2007 -0500 @@ -488,9 +488,9 @@ if not partial: recordupdates(repo, action, branchmerge) repo.dirstate.setparents(fp1, fp2) + if not branchmerge: + repo.dirstate.setbranch(p2.branch()) repo.hook('update', parent1=xp1, parent2=xp2, error=stats[3]) - if not branchmerge: - repo.opener("branch", "w").write(p2.branch() + "\n") return stats
--- a/tests/test-newbranch Tue Mar 13 15:47:55 2007 -0500 +++ b/tests/test-newbranch Tue Mar 13 18:50:02 2007 -0500 @@ -12,7 +12,7 @@ hg ci -m "add branch name" -d "1000000 0" hg branch bar hg ci -m "change branch name" -d "1000000 0" -hg branch "" +hg branch default hg ci -m "clear branch name" -d "1000000 0" hg co foo