mercurial/bundlerepo.py
changeset 1980 dfb796786337
parent 1971 915b81a35e46
child 1981 736b6c96bbbc
equal deleted inserted replaced
1979:d545fa1426b9 1980:dfb796786337
   172     def __init__(self, ui, path, bundlename):
   172     def __init__(self, ui, path, bundlename):
   173         localrepo.localrepository.__init__(self, ui, path)
   173         localrepo.localrepository.__init__(self, ui, path)
   174         f = open(bundlename, "rb")
   174         f = open(bundlename, "rb")
   175         s = os.fstat(f.fileno())
   175         s = os.fstat(f.fileno())
   176         self.bundlefile = f
   176         self.bundlefile = f
   177         header = self.bundlefile.read(4)
   177         header = self.bundlefile.read(6)
   178         if header == "HG10":
   178         if not header.startswith("HG"):
       
   179             raise util.Abort(_("%s: not a Mercurial bundle file") % bundlename)
       
   180         elif not header.startswith("HG10"):
       
   181             raise util.Abort(_("%s: unknown bundle version") % bundlename)
       
   182         elif header == "HG10BZ":
   179             raise util.Abort(_("%s: compressed bundle not supported")
   183             raise util.Abort(_("%s: compressed bundle not supported")
   180                              % bundlename)
   184                              % bundlename)
   181         elif header != "HG11":
   185         elif header == "HG10UN":
   182             raise util.Abort(_("%s: not a Mercurial bundle file") % bundlename)
   186             # uncompressed bundle supported
       
   187             pass
       
   188         else:
       
   189             raise util.Abort(_("%s: unknown bundle compression type")
       
   190                              % bundlename)
   183         self.changelog = bundlechangelog(self.opener, self.bundlefile)
   191         self.changelog = bundlechangelog(self.opener, self.bundlefile)
   184         self.manifest = bundlemanifest(self.opener, self.bundlefile,
   192         self.manifest = bundlemanifest(self.opener, self.bundlefile,
   185                                        self.changelog.rev)
   193                                        self.changelog.rev)
   186         # dict with the mapping 'filename' -> position in the bundle
   194         # dict with the mapping 'filename' -> position in the bundle
   187         self.bundlefilespos = {}
   195         self.bundlefilespos = {}