Mercurial > hg > mercurial-crew
changeset 23566: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 +++ b/mercurial/localrepo.py @@ -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 +++ b/mercurial/namespaces.py @@ -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 +++ b/mercurial/statichttprepo.py @@ -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: