##// END OF EJS Templates
linkrev: take a revision number rather than a hash
Matt Mackall -
r7361:9fe97eea default
parent child Browse files
Show More
@@ -17,7 +17,7 b' for f in sys.argv[1:]:'
17 17 p = r.parents(n)
18 18 d = r.revision(n)
19 19 print "node:", node.hex(n)
20 print "linkrev:", r.linkrev(n)
20 print "linkrev:", r.linkrev(i)
21 21 print "parents:", node.hex(p[0]), node.hex(p[1])
22 22 print "length:", len(d)
23 23 print "-start-"
@@ -1017,7 +1017,7 b' def walkchangerevs(ui, repo, pats, chang'
1017 1017 revs = []
1018 1018 for j in xrange(i - window, i + 1):
1019 1019 n = filelog.node(j)
1020 revs.append((filelog.linkrev(n),
1020 revs.append((filelog.linkrev(j),
1021 1021 follow and filelog.renamed(n)))
1022 1022 revs.reverse()
1023 1023 for rev in revs:
@@ -829,7 +829,7 b' def debugindex(ui, file_):'
829 829 except:
830 830 pp = [nullid, nullid]
831 831 ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % (
832 i, r.start(i), r.length(i), r.base(i), r.linkrev(node),
832 i, r.start(i), r.length(i), r.base(i), r.linkrev(i),
833 833 short(node), short(pp[0]), short(pp[1])))
834 834
835 835 def debugindexdot(ui, file_):
@@ -1833,7 +1833,7 b' def log(ui, repo, *pats, **opts):'
1833 1833 fl = repo.file(fn)
1834 1834 for i in fl:
1835 1835 node = fl.node(i)
1836 lr = fl.linkrev(node)
1836 lr = fl.linkrev(i)
1837 1837 renamed = fl.renamed(node)
1838 1838 rcache[fn][lr] = renamed
1839 1839 if renamed:
@@ -2053,7 +2053,7 b' def parents(ui, repo, file_=None, **opts'
2053 2053 if not filenodes:
2054 2054 raise util.Abort(_("'%s' not found in manifest!") % file_)
2055 2055 fl = repo.file(file_)
2056 p = [repo.lookup(fl.linkrev(fn)) for fn in filenodes]
2056 p = [repo.lookup(fl.linkrev(fl.rev(fn))) for fn in filenodes]
2057 2057 else:
2058 2058 p = [cp.node() for cp in ctx.parents()]
2059 2059
@@ -200,7 +200,7 b' class filectx(object):'
200 200 if '_changectx' in self.__dict__:
201 201 self._changeid = self._changectx.rev()
202 202 else:
203 self._changeid = self._filelog.linkrev(self._filenode)
203 self._changeid = self._filelog.linkrev(self._filerev)
204 204 return self._changeid
205 205 elif name == '_filenode':
206 206 if '_fileid' in self.__dict__:
@@ -263,9 +263,9 b' class filectx(object):'
263 263 return self._changectx.rev()
264 264 if '_changeid' in self.__dict__:
265 265 return self._changectx.rev()
266 return self._filelog.linkrev(self._filenode)
266 return self._filelog.linkrev(self._filerev)
267 267
268 def linkrev(self): return self._filelog.linkrev(self._filenode)
268 def linkrev(self): return self._filelog.linkrev(self._filerev)
269 269 def node(self): return self._changectx.node()
270 270 def user(self): return self._changectx.user()
271 271 def date(self): return self._changectx.date()
@@ -647,7 +647,7 b' class workingfilectx(filectx):'
647 647 def rev(self):
648 648 if '_changectx' in self.__dict__:
649 649 return self._changectx.rev()
650 return self._filelog.linkrev(self._filenode)
650 return self._filelog.linkrev(self._filerev)
651 651
652 652 def data(self): return self._repo.wread(self._path)
653 653 def renamed(self):
@@ -526,13 +526,13 b' def filelog(web, req, tmpl):'
526 526 if not numrevs: # file doesn't exist at all
527 527 raise
528 528 rev = webutil.changectx(web.repo, req).rev()
529 first = fl.linkrev(fl.node(0))
529 first = fl.linkrev(0)
530 530 if rev < first: # current rev is from before file existed
531 531 raise
532 532 frev = numrevs - 1
533 while fl.linkrev(fl.node(frev)) > rev:
533 while fl.linkrev(frev) > rev:
534 534 frev -= 1
535 fctx = web.repo.filectx(f, fl.linkrev(fl.node(frev)))
535 fctx = web.repo.filectx(f, fl.linkrev(frev))
536 536
537 537 count = fctx.filerev() + 1
538 538 pagelen = web.maxshortchanges
@@ -126,7 +126,7 b' def changectx(repo, req):'
126 126 ctx = repo[changeid]
127 127 except RepoError:
128 128 man = repo.manifest
129 ctx = repo[man.linkrev(man.lookup(changeid))]
129 ctx = repo[man.linkrev(man.rev(man.lookup(changeid)))]
130 130
131 131 return ctx
132 132
@@ -1703,7 +1703,7 b' class localrepository(repo.repository):'
1703 1703 # If a 'missing' manifest thinks it belongs to a changenode
1704 1704 # the recipient is assumed to have, obviously the recipient
1705 1705 # must have that manifest.
1706 linknode = cl.node(mnfst.linkrev(n))
1706 linknode = cl.node(mnfst.linkrev(mnfst.rev(n)))
1707 1707 if linknode in has_cl_set:
1708 1708 has_mnfst_set[n] = 1
1709 1709 prune_parents(mnfst, has_mnfst_set, msng_mnfst_set)
@@ -1769,7 +1769,7 b' class localrepository(repo.repository):'
1769 1769 # assume the recipient must have, then the recipient must have
1770 1770 # that filenode.
1771 1771 for n in msngset:
1772 clnode = cl.node(filerevlog.linkrev(n))
1772 clnode = cl.node(filerevlog.linkrev(filerevlog.rev(n)))
1773 1773 if clnode in has_cl_set:
1774 1774 hasset[n] = 1
1775 1775 prune_parents(filerevlog, hasset, msngset)
@@ -1892,9 +1892,8 b' class localrepository(repo.repository):'
1892 1892
1893 1893 def gennodelst(log):
1894 1894 for r in log:
1895 n = log.node(r)
1896 if log.linkrev(n) in revset:
1897 yield n
1895 if log.linkrev(r) in revset:
1896 yield log.node(r)
1898 1897
1899 1898 def changed_file_collector(changedfileset):
1900 1899 def collect_changed_files(clnode):
@@ -1905,7 +1904,7 b' class localrepository(repo.repository):'
1905 1904
1906 1905 def lookuprevlink_func(revlog):
1907 1906 def lookuprevlink(n):
1908 return cl.node(revlog.linkrev(n))
1907 return cl.node(revlog.linkrev(revlog.rev(n)))
1909 1908 return lookuprevlink
1910 1909
1911 1910 def gengroup():
@@ -41,8 +41,7 b' def _collectextranodes(repo, files, link'
41 41 startrev = count = len(revlog)
42 42 # find the truncation point of the revlog
43 43 for i in xrange(0, count):
44 node = revlog.node(i)
45 lrev = revlog.linkrev(node)
44 lrev = revlog.linkrev(i)
46 45 if lrev >= link:
47 46 startrev = i + 1
48 47 break
@@ -51,7 +50,7 b' def _collectextranodes(repo, files, link'
51 50 # (we have to manually save these guys)
52 51 for i in xrange(startrev, count):
53 52 node = revlog.node(i)
54 lrev = revlog.linkrev(node)
53 lrev = revlog.linkrev(i)
55 54 if lrev < link:
56 55 extra.append((node, cl.node(lrev)))
57 56
@@ -500,8 +500,8 b' class revlog(object):'
500 500 raise LookupError(node, self.indexfile, _('no node'))
501 501 def node(self, rev):
502 502 return self.index[rev][7]
503 def linkrev(self, node):
504 return self.index[self.rev(node)][4]
503 def linkrev(self, rev):
504 return self.index[rev][4]
505 505 def parents(self, node):
506 506 d = self.index[self.rev(node)][5:7]
507 507 return (self.node(d[0]), self.node(d[1]))
@@ -70,7 +70,7 b' def _verify(repo):'
70 70 warn(_("warning: `%s' uses revlog format 0") % name)
71 71
72 72 def checkentry(obj, i, node, seen, linkrevs, f):
73 lr = obj.linkrev(node)
73 lr = obj.linkrev(obj.rev(node))
74 74 if lr < 0 or (havecl and lr not in linkrevs):
75 75 t = "unexpected"
76 76 if lr < 0 or lr >= len(cl):
@@ -135,7 +135,7 b' def _verify(repo):'
135 135 elif f != "/dev/null":
136 136 fns = filenodes.setdefault(f, {})
137 137 if fn not in fns:
138 fns[fn] = n
138 fns[fn] = i
139 139 except Exception, inst:
140 140 exc(lr, _("reading manifest delta %s") % short(n), inst)
141 141
@@ -155,7 +155,8 b' def _verify(repo):'
155 155 for f in util.sort(filenodes):
156 156 if f not in filelinkrevs:
157 157 try:
158 lr = min([repo.file(f).linkrev(n) for n in filenodes[f]])
158 fl = repo.file(f)
159 lr = min([fl.linkrev(fl.rev(n)) for n in filenodes[f]])
159 160 except:
160 161 lr = None
161 162 err(lr, _("in manifest but not in changeset"), f)
General Comments 0
You need to be logged in to leave comments. Login now