mercurial/statichttprepo.py
changeset 14482 58b36e9ea783
parent 14168 135e244776f0
child 14519 28682c7e7479
equal deleted inserted replaced
14481:b2ee161328e0 14482:58b36e9ea783
    89         self.path, authinfo = u.authinfo()
    89         self.path, authinfo = u.authinfo()
    90 
    90 
    91         opener = build_opener(ui, authinfo)
    91         opener = build_opener(ui, authinfo)
    92         self.opener = opener(self.path)
    92         self.opener = opener(self.path)
    93 
    93 
    94         # find requirements
       
    95         try:
    94         try:
    96             requirements = self.opener.read("requires").splitlines()
    95             requirements = scmutil.readrequires(self.opener, self.supported)
    97         except IOError, inst:
    96         except IOError, inst:
    98             if inst.errno != errno.ENOENT:
    97             if inst.errno != errno.ENOENT:
    99                 raise
    98                 raise
       
    99             requirements = set()
       
   100 
   100             # check if it is a non-empty old-style repository
   101             # check if it is a non-empty old-style repository
   101             try:
   102             try:
   102                 fp = self.opener("00changelog.i")
   103                 fp = self.opener("00changelog.i")
   103                 fp.read(1)
   104                 fp.read(1)
   104                 fp.close()
   105                 fp.close()
   106                 if inst.errno != errno.ENOENT:
   107                 if inst.errno != errno.ENOENT:
   107                     raise
   108                     raise
   108                 # we do not care about empty old-style repositories here
   109                 # we do not care about empty old-style repositories here
   109                 msg = _("'%s' does not appear to be an hg repository") % path
   110                 msg = _("'%s' does not appear to be an hg repository") % path
   110                 raise error.RepoError(msg)
   111                 raise error.RepoError(msg)
   111             requirements = []
       
   112 
       
   113         # check them
       
   114         for r in requirements:
       
   115             if r not in self.supported:
       
   116                 raise error.RequirementError(
       
   117                         _("requirement '%s' not supported") % r)
       
   118 
   112 
   119         # setup store
   113         # setup store
   120         self.store = store.store(requirements, self.path, opener)
   114         self.store = store.store(requirements, self.path, opener)
   121         self.spath = self.store.path
   115         self.spath = self.store.path
   122         self.sopener = self.store.opener
   116         self.sopener = self.store.opener