Mercurial > hg
changeset 16201:fb7c4c14223f stable
dirstate: filecacheify _branch
The opener is relative to .hg, use it in a subclass of filecache to compute
the final path.
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Thu, 01 Mar 2012 17:42:49 +0200 |
parents | 9d4a2942a732 |
children | 53e2cd303ecf |
files | mercurial/dirstate.py tests/test-commandserver.py tests/test-commandserver.py.out |
diffstat | 3 files changed, 26 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dirstate.py Thu Mar 01 17:39:58 2012 +0200 +++ b/mercurial/dirstate.py Thu Mar 01 17:42:49 2012 +0200 @@ -14,6 +14,12 @@ _format = ">cllll" propertycache = util.propertycache +filecache = scmutil.filecache + +class repocache(filecache): + """filecache for files in .hg/""" + def join(self, obj, fname): + return obj._opener.join(fname) def _finddirs(path): pos = path.rfind('/') @@ -78,7 +84,7 @@ f['.'] = '.' # prevents useless util.fspath() invocation return f - @propertycache + @repocache('branch') def _branch(self): try: return self._opener.read("branch").strip() or "default"
--- a/tests/test-commandserver.py Thu Mar 01 17:39:58 2012 +0200 +++ b/tests/test-commandserver.py Thu Mar 01 17:42:49 2012 +0200 @@ -212,6 +212,13 @@ runcommand(server, ['rollback']) runcommand(server, ['phase', '-r', '.']) +def branch(server): + readchannel(server) + runcommand(server, ['branch']) + os.system('hg branch foo') + runcommand(server, ['branch']) + os.system('hg branch default') + if __name__ == '__main__': os.system('hg init') @@ -232,3 +239,4 @@ check(tagscache) check(setphase) check(rollback) + check(branch)
--- a/tests/test-commandserver.py.out Thu Mar 01 17:39:58 2012 +0200 +++ b/tests/test-commandserver.py.out Thu Mar 01 17:42:49 2012 +0200 @@ -145,3 +145,14 @@ working directory now based on revision 3 runcommand phase -r . 3: public + +testing branch: + + runcommand branch +default +marked working directory as branch foo +(branches are permanent and global, did you want a bookmark?) + runcommand branch +foo +marked working directory as branch default +(branches are permanent and global, did you want a bookmark?)