Show More
@@ -1,3 +1,4 b'' | |||||
|
1 | from i18n import _ | |||
1 | from mercurial import util |
|
2 | from mercurial import util | |
2 | import weakref |
|
3 | import weakref | |
3 |
|
4 | |||
@@ -58,3 +59,22 b' class namespaces(object):' | |||||
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) |
General Comments 0
You need to be logged in to leave comments.
Login now