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