code: def _clone_repo(cls, repo, url, path, name, **kwargs):
          
          module_abspath = cls._module_abspath(repo, path, name)
          module_checkout_path = module_abspath
          if cls._need_gitfile_submodules(repo.git):
              kwargs['separate_git_dir'] = module_abspath
              module_abspath_dir = osp.dirname(module_abspath)
              if not osp.isdir(module_abspath_dir):
                  os.makedirs(module_abspath_dir)
              module_checkout_path = osp.join(repo.working_tree_dir, path)
          # end
  
          clone = git.Repo.clone_from(url, module_checkout_path, **kwargs)
          if cls._need_gitfile_submodules(repo.git):
              cls._write_git_file_and_module_config(module_checkout_path, module_abspath)
          # end
          return clone
docs: :return: Repo instance of newly cloned repository
          :param repo: our parent repository
          :param url: url to clone from
          :param path: repository-relative path to the submodule checkout location
          :param name: canonical of the submodule
          :param kwrags: additinoal arguments given to git.clone