equal
deleted
inserted
replaced
46 |
46 |
47 :nodefun: factory for a changectx from a revision |
47 :nodefun: factory for a changectx from a revision |
48 """ |
48 """ |
49 self.nodefunc = nodefunc |
49 self.nodefunc = nodefunc |
50 |
50 |
|
51 def hex(self, rev): |
|
52 return self.nodefunc(rev).hex() |
|
53 |
51 def gen(self, pos, pagelen, limit): |
54 def gen(self, pos, pagelen, limit): |
52 """computes label and revision id for navigation link |
55 """computes label and revision id for navigation link |
53 |
56 |
54 :pos: is the revision relative to which we generate navigation. |
57 :pos: is the revision relative to which we generate navigation. |
55 :pagelen: the size of each navigation page |
58 :pagelen: the size of each navigation page |
67 |
70 |
68 for f in _navseq(1, pagelen): |
71 for f in _navseq(1, pagelen): |
69 if f > limit: |
72 if f > limit: |
70 break |
73 break |
71 if pos + f < limit: |
74 if pos + f < limit: |
72 navafter.append(("+%d" % f, |
75 navafter.append(("+%d" % f, self.hex(pos + f))) |
73 hex(self.nodefunc(pos + f).node()))) |
|
74 if pos - f >= 0: |
76 if pos - f >= 0: |
75 navbefore.insert(0, ("-%d" % f, |
77 navbefore.insert(0, ("-%d" % f, self.hex(pos - f))) |
76 hex(self.nodefunc(pos - f).node()))) |
|
77 |
78 |
78 navafter.append(("tip", "tip")) |
79 navafter.append(("tip", "tip")) |
79 try: |
80 try: |
80 navbefore.insert(0, ("(0)", hex(self.nodefunc(0).node()))) |
81 navbefore.insert(0, ("(0)", self.hex(0))) |
81 except error.RepoError: |
82 except error.RepoError: |
82 pass |
83 pass |
83 |
84 |
84 data = lambda i: {"label": i[0], "node": i[1]} |
85 data = lambda i: {"label": i[0], "node": i[1]} |
85 return ({'before': lambda **map: (data(i) for i in navbefore), |
86 return ({'before': lambda **map: (data(i) for i in navbefore), |