equal
deleted
inserted
replaced
|
1 from i18n import _ |
1 from mercurial import util |
2 from mercurial import util |
2 import weakref |
3 import weakref |
3 |
4 |
4 def tolist(val): |
5 def tolist(val): |
5 """ |
6 """ |
56 val = {'namemap': namemap} |
57 val = {'namemap': namemap} |
57 if order is not None: |
58 if order is not None: |
58 self._names.insert(order, namespace, val) |
59 self._names.insert(order, namespace, val) |
59 else: |
60 else: |
60 self._names[namespace] = val |
61 self._names[namespace] = val |
|
62 |
|
63 def singlenode(self, name): |
|
64 """ |
|
65 Return the 'best' node for the given name. Best means the first node |
|
66 in the first nonempty list returned by a name-to-nodes mapping function |
|
67 in the defined precedence order. |
|
68 |
|
69 Raises a KeyError if there is no such node. |
|
70 """ |
|
71 for ns, v in self._names.iteritems(): |
|
72 n = v['namemap'](self.repo, name) |
|
73 if n: |
|
74 # return max revision number |
|
75 if len(n) > 1: |
|
76 cl = self.repo.changelog |
|
77 maxrev = max(cl.rev(node) for node in n) |
|
78 return cl.node(maxrev) |
|
79 return n[0] |
|
80 raise KeyError(_('no such name: %s') % name) |