code: def _get_repo(self, create, src_url=None, update_after_clone=False):
          
  
          try:
              if src_url:
                  url = str(self._get_url(src_url))
                  opts = {}
                  if not update_after_clone:
                      opts.update({'noupdate': True})
                  try:
                      MercurialRepository._check_url(url)
                      clone(self.baseui, url, self.path, **opts)
  #                except urllib2.URLError:
  #                    raise Abort("Got HTTP 404 error")
                  except Exception:
                      raise
  
                  # Don't try to create if we've already cloned repo
                  create = False
              return localrepository(self.baseui, self.path, create=create)
          except (Abort, RepoError), err:
              if create:
                  msg = "Cannot create repository at %s. Original error was %s"\
                      % (self.path, err)
              else:
                  msg = "Not valid repository at %s. Original error was %s"\
                      % (self.path, err)
              raise RepositoryError(msg)
docs: Function will check for mercurial repository in given path and return
          a localrepo object. If there is no repository in that path it will
          raise an exception unless ``create`` parameter is set to True - in
          that case repository would be created and returned.
          If ``src_url`` is given, would try to clone repository from the
          location at given clone_point. Additionally it'll make update to
          working copy accordingly to ``update_after_clone`` flag