##// 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 1771 raise
1772 1772 except Exception, inst:
1773 1773 err(_("unpacking changeset %s: %s") % (short(n), inst))
1774 continue
1774 1775
1775 1776 neededmanifests[changes[0]] = n
1776 1777
@@ -1808,10 +1809,14 b' class localrepository(object):'
1808 1809 raise
1809 1810 except Exception, inst:
1810 1811 err(_("unpacking manifest %s: %s") % (short(n), inst))
1812 continue
1811 1813
1812 ff = [ l.split('\0') for l in delta.splitlines() ]
1813 for f, fn in ff:
1814 filenodes.setdefault(f, {})[bin(fn[:40])] = 1
1814 try:
1815 ff = [ l.split('\0') for l in delta.splitlines() ]
1816 for f, fn in ff:
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 1821 self.ui.status(_("crosschecking files in changesets and manifests\n"))
1817 1822
@@ -1835,6 +1840,9 b' class localrepository(object):'
1835 1840 if f == "/dev/null":
1836 1841 continue
1837 1842 files += 1
1843 if not f:
1844 err(_("file without name in manifest %s") % short(n))
1845 continue
1838 1846 fl = self.file(f)
1839 1847 checksize(fl, f)
1840 1848
@@ -1852,7 +1860,7 b' class localrepository(object):'
1852 1860 del filenodes[f][n]
1853 1861
1854 1862 flr = fl.linkrev(n)
1855 if flr not in filelinkrevs[f]:
1863 if flr not in filelinkrevs.get(f, []):
1856 1864 err(_("%s:%s points to unexpected changeset %d")
1857 1865 % (f, short(n), flr))
1858 1866 else:
@@ -48,7 +48,7 b' def decompress(bin):'
48 48 if t == '\0': return bin
49 49 if t == 'x': return zlib.decompress(bin)
50 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 53 indexformat = ">4l20s20s20s"
54 54
General Comments 0
You need to be logged in to leave comments. Login now