      # within the destination dir, so we use a tempdir and then copy it into the
      # parent directory to create the cloned directory
      dest = dest.resolve()
      with make_tempdir() as tmp_dir:
          cmd = ["dvc", "get", repo, name, "-o", str(tmp_dir)]
          if verbose:
              cmd.append("--verbose")
          if silent:
              cmd.append("--quiet")
          print(" ".join(cmd))
          run_command(cmd)
          shutil.move(str(tmp_dir / Path(name).name), str(dest))
      msg.good(f"Cloned project '{name}' from {repo}")
      for sub_dir in DIRS:
          dir_path = dest / sub_dir
          if not dir_path.exists():
              dir_path.mkdir(parents=True)
 
</s> remove     check_clone_dest(dest)
    # When cloning a subdirectory with DVC, it will create a folder of that name
    # within the destination dir, so we use a tempdir and then copy it into the
    # parent directory to create the cloned directory
    dest = dest.resolve()
 </s> add     check_clone(name, dest, repo)
    project_dir = dest.resolve()
    # We're using Git and sparse checkout to only clone the files we need </s> remove         dir_path = dest / sub_dir
 </s> add         dir_path = project_dir / sub_dir </s> remove     silent: bool = False,
    verbose: bool = False,
 </s> add  </s> remove         project_init(dest, git=git, silent=silent)
 </s> add         project_init(project_dir, git=git, silent=True) </s> remove def check_clone_dest(dest: Path) -> None:
    """Check and validate that the destination path can be used to clone."""
 </s> add     name (str): Name of the directory to clone from the repo.
    dest (Path): Local destination of cloned directory.
    repo (str): URL of the repo to clone from.
    """
    try:
        subprocess.run(["git", "--version"], stdout=subprocess.DEVNULL)
    except Exception:
        msg.fail(
            f"Cloning spaCy project templates requires Git and the 'git' command. ",
            f"To clone a project without Git, copy the files from the '{name}' "
            f"directory in the {repo} to {dest} manually and then run:",
            f"{COMMAND} project init {dest}",
            exits=1,
        )
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
      # within the destination dir, so we use a tempdir and then copy it into the
      # parent directory to create the cloned directory
      dest = dest.resolve()
      with make_tempdir() as tmp_dir:
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
        cmd = f"git clone {repo} {tmp_dir} --no-checkout --depth 1 --config core.sparseCheckout=true"
        run_command(shlex.split(cmd))
        with (tmp_dir / ".git" / "info" / "sparse-checkout").open("w") as f:
            f.write(name)
        run_command(["git", "-C", tmp_dir, "fetch"])
        run_command(["git", "-C", tmp_dir, "checkout"])
        shutil.move(str(tmp_dir / Path(name).name), str(project_dir))
      msg.good(f"Cloned project '{name}' from {repo}")
      for sub_dir in DIRS:
          dir_path = dest / sub_dir
          if not dir_path.exists():
              dir_path.mkdir(parents=True)
keep keep keep keep replace replace replace replace replace replace replace replace keep keep keep keep keep
 Tidy up, document and add custom clone logic 
spacy/cli/project.py