mercurial/localrepo.py
changeset 1853 5ac811b720de
parent 1839 876e4e6ad82b
child 1880 05c7d75be925
equal deleted inserted replaced
1852:fdf9cbf56ec7 1853:5ac811b720de
  1769             except KeyboardInterrupt:
  1769             except KeyboardInterrupt:
  1770                 self.ui.warn(_("interrupted"))
  1770                 self.ui.warn(_("interrupted"))
  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 
  1777             for f in changes[3]:
  1778             for f in changes[3]:
  1778                 filelinkrevs.setdefault(f, []).append(i)
  1779                 filelinkrevs.setdefault(f, []).append(i)
  1806             except KeyboardInterrupt:
  1807             except KeyboardInterrupt:
  1807                 self.ui.warn(_("interrupted"))
  1808                 self.ui.warn(_("interrupted"))
  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))
  1811 
  1812                 continue
  1812             ff = [ l.split('\0') for l in delta.splitlines() ]
  1813 
  1813             for f, fn in ff:
  1814             try:
  1814                 filenodes.setdefault(f, {})[bin(fn[:40])] = 1
  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         self.ui.status(_("crosschecking files in changesets and manifests\n"))
  1821         self.ui.status(_("crosschecking files in changesets and manifests\n"))
  1817 
  1822 
  1818         for m, c in neededmanifests.items():
  1823         for m, c in neededmanifests.items():
  1819             err(_("Changeset %s refers to unknown manifest %s") %
  1824             err(_("Changeset %s refers to unknown manifest %s") %
  1833         ff.sort()
  1838         ff.sort()
  1834         for f in ff:
  1839         for f in ff:
  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 
  1841             nodes = {nullid: 1}
  1849             nodes = {nullid: 1}
  1842             seen = {}
  1850             seen = {}
  1850                     err(_("%s: %d:%s not in manifests") % (f, i, short(n)))
  1858                     err(_("%s: %d:%s not in manifests") % (f, i, short(n)))
  1851                 else:
  1859                 else:
  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:
  1859                     filelinkrevs[f].remove(flr)
  1867                     filelinkrevs[f].remove(flr)
  1860 
  1868