20 _names_version = 0 |
20 _names_version = 0 |
21 |
21 |
22 def __init__(self): |
22 def __init__(self): |
23 self._names = util.sortdict() |
23 self._names = util.sortdict() |
24 |
24 |
25 # shorten the class name for less indentation |
|
26 ns = namespace |
|
27 |
|
28 # we need current mercurial named objects (bookmarks, tags, and |
25 # we need current mercurial named objects (bookmarks, tags, and |
29 # branches) to be initialized somewhere, so that place is here |
26 # branches) to be initialized somewhere, so that place is here |
30 n = ns("bookmarks", "bookmark", |
27 bmknames = lambda repo: repo._bookmarks.keys() |
31 lambda repo: repo._bookmarks.keys(), |
28 bmknamemap = lambda repo, name: tolist(repo._bookmarks.get(name)) |
32 lambda repo, name: tolist(repo._bookmarks.get(name)), |
29 bmknodemap = lambda repo, name: repo.nodebookmarks(name) |
33 lambda repo, name: repo.nodebookmarks(name)) |
30 n = namespace("bookmarks", templatename="bookmark", listnames=bmknames, |
|
31 namemap=bmknamemap, nodemap=bmknodemap) |
34 self.addnamespace(n) |
32 self.addnamespace(n) |
35 |
33 |
36 n = ns("tags", "tag", |
34 tagnames = lambda repo: [t for t, n in repo.tagslist()] |
37 lambda repo: [t for t, n in repo.tagslist()], |
35 tagnamemap = lambda repo, name: tolist(repo._tagscache.tags.get(name)) |
38 lambda repo, name: tolist(repo._tagscache.tags.get(name)), |
36 tagnodemap = lambda repo, name: repo.nodetags(name) |
39 lambda repo, name: repo.nodetags(name)) |
37 n = namespace("tags", templatename="tag", listnames=tagnames, |
|
38 namemap=tagnamemap, nodemap=tagnodemap) |
40 self.addnamespace(n) |
39 self.addnamespace(n) |
41 |
40 |
42 n = ns("branches", "branch", |
41 bnames = lambda repo: repo.branchmap().keys() |
43 lambda repo: repo.branchmap().keys(), |
42 bnamemap = lambda repo, name: tolist(repo.branchtip(name, True)) |
44 lambda repo, name: tolist(repo.branchtip(name, True)), |
43 bnodemap = lambda repo, node: [repo[node].branch()] |
45 lambda repo, node: [repo[node].branch()]) |
44 n = namespace("branches", templatename="branch", listnames=bnames, |
|
45 namemap=bnamemap, nodemap=bnodemap) |
46 self.addnamespace(n) |
46 self.addnamespace(n) |
47 |
47 |
48 def __getitem__(self, namespace): |
48 def __getitem__(self, namespace): |
49 """returns the namespace object""" |
49 """returns the namespace object""" |
50 return self._names[namespace] |
50 return self._names[namespace] |