##// END OF EJS Templates
Fix some problems when working on broken repositories:...
Thomas Arendsen Hein -
r1853:5ac811b7 default
parent child Browse files
Show More
@@ -1771,6 +1771,7 b' class localrepository(object):'
1771 raise
1771 raise
1772 except Exception, inst:
1772 except Exception, inst:
1773 err(_("unpacking changeset %s: %s") % (short(n), inst))
1773 err(_("unpacking changeset %s: %s") % (short(n), inst))
1774 continue
1774
1775
1775 neededmanifests[changes[0]] = n
1776 neededmanifests[changes[0]] = n
1776
1777
@@ -1808,10 +1809,14 b' class localrepository(object):'
1808 raise
1809 raise
1809 except Exception, inst:
1810 except Exception, inst:
1810 err(_("unpacking manifest %s: %s") % (short(n), inst))
1811 err(_("unpacking manifest %s: %s") % (short(n), inst))
1812 continue
1811
1813
1814 try:
1812 ff = [ l.split('\0') for l in delta.splitlines() ]
1815 ff = [ l.split('\0') for l in delta.splitlines() ]
1813 for f, fn in ff:
1816 for f, fn in ff:
1814 filenodes.setdefault(f, {})[bin(fn[:40])] = 1
1817 filenodes.setdefault(f, {})[bin(fn[:40])] = 1
1818 except (ValueError, TypeError), inst:
1819 err(_("broken delta in manifest %s: %s") % (short(n), inst))
1815
1820
1816 self.ui.status(_("crosschecking files in changesets and manifests\n"))
1821 self.ui.status(_("crosschecking files in changesets and manifests\n"))
1817
1822
@@ -1835,6 +1840,9 b' class localrepository(object):'
1835 if f == "/dev/null":
1840 if f == "/dev/null":
1836 continue
1841 continue
1837 files += 1
1842 files += 1
1843 if not f:
1844 err(_("file without name in manifest %s") % short(n))
1845 continue
1838 fl = self.file(f)
1846 fl = self.file(f)
1839 checksize(fl, f)
1847 checksize(fl, f)
1840
1848
@@ -1852,7 +1860,7 b' class localrepository(object):'
1852 del filenodes[f][n]
1860 del filenodes[f][n]
1853
1861
1854 flr = fl.linkrev(n)
1862 flr = fl.linkrev(n)
1855 if flr not in filelinkrevs[f]:
1863 if flr not in filelinkrevs.get(f, []):
1856 err(_("%s:%s points to unexpected changeset %d")
1864 err(_("%s:%s points to unexpected changeset %d")
1857 % (f, short(n), flr))
1865 % (f, short(n), flr))
1858 else:
1866 else:
@@ -48,7 +48,7 b' def decompress(bin):'
48 if t == '\0': return bin
48 if t == '\0': return bin
49 if t == 'x': return zlib.decompress(bin)
49 if t == 'x': return zlib.decompress(bin)
50 if t == 'u': return bin[1:]
50 if t == 'u': return bin[1:]
51 raise RevlogError(_("unknown compression type %s") % t)
51 raise RevlogError(_("unknown compression type %r") % t)
52
52
53 indexformat = ">4l20s20s20s"
53 indexformat = ">4l20s20s20s"
54
54
General Comments 0
You need to be logged in to leave comments. Login now