code: def SCM(root_dir, repo=None):  # pylint: disable=invalid-name
      
      if Git.is_repo(root_dir) or Git.is_submodule(root_dir):
          return Git(root_dir, repo=repo)
  
      return NoSCM(root_dir, repo=repo)
docs: Returns SCM instance that corresponds to a repo at the specified
      path.
  
      Args:
          root_dir (str): path to a root directory of the repo.
          repo (dvc.repo.Repo): dvc repo instance that root_dir belongs to.
  
      Returns:
          dvc.scm.base.Base: SCM instance.