Mercurial > hg
changeset 23558:3198aac7a95d
namespaces: add bookmarks to the names data structure
This marks the first use of abstracting our different types of named objects
(bookmarks, tags, branches, etc.) and upcoming patches will use this to
simplify logic.
author | Sean Farley <sean.michael.farley@gmail.com> |
---|---|
date | Sun, 14 Dec 2014 12:53:50 -0800 |
parents | b04b27aa6da3 |
children | 3b3a962e3677 |
files | mercurial/localrepo.py mercurial/namespaces.py mercurial/statichttprepo.py |
diffstat | 3 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Sun Dec 14 16:22:24 2014 -0800 +++ b/mercurial/localrepo.py Sun Dec 14 12:53:50 2014 -0800 @@ -18,6 +18,7 @@ from lock import release import weakref, errno, os, time, inspect import branchmap, pathutil +import namespaces propertycache = util.propertycache filecache = scmutil.filecache @@ -297,6 +298,9 @@ # - bookmark changes self.filteredrevcache = {} + # generic mapping between names and nodes + self.names = namespaces.namespaces(self) + def close(self): pass
--- a/mercurial/namespaces.py Sun Dec 14 16:22:24 2014 -0800 +++ b/mercurial/namespaces.py Sun Dec 14 12:53:50 2014 -0800 @@ -35,6 +35,11 @@ self._names = util.sortdict() self._repo = weakref.ref(repo) + # we need current mercurial named objects (bookmarks, tags, and + # branches) to be initialized somewhere, so that place is here + self.addnamespace("bookmarks", + lambda repo, name: tolist(repo._bookmarks.get(name))) + @property def repo(self): return self._repo()
--- a/mercurial/statichttprepo.py Sun Dec 14 16:22:24 2014 -0800 +++ b/mercurial/statichttprepo.py Sun Dec 14 12:53:50 2014 -0800 @@ -8,7 +8,7 @@ # GNU General Public License version 2 or any later version. from i18n import _ -import changelog, byterange, url, error +import changelog, byterange, url, error, namespaces import localrepo, manifest, util, scmutil, store import urllib, urllib2, errno, os @@ -106,6 +106,8 @@ self.vfs = self.opener self._phasedefaults = [] + self.names = namespaces.namespaces(self) + try: requirements = scmutil.readrequires(self.opener, self.supported) except IOError, inst: