code: def _repo_diff_verbose(
      repo: git.Repo, repo_hash: str, warning_time: float = 5
  ) -> str:
      collector = _DiffCollector(warning_time)
      try:
          _interactive_git_proc(
              repo.git.diff(repo_hash, as_process=True), collector
          )
          for filename in repo.untracked_files:
              _interactive_git_proc(
                  repo.git.diff(
                      "/dev/null",
                      filename,
                      no_index=True,
                      binary=True,
                      as_process=True,
                  ),
                  collector,
                  ignore_status=True,
              )
          return collector.get()
      except KeyboardInterrupt:
          print("\nAborted")
          exit(1)
  
imports: import io
  import subprocess
  import time
  from typing import BinaryIO, Optional
  import git
  import giturlparse
  from pydantic import BaseModel, Field
  from typing_extensions import Literal
  from dstack._internal.core.errors import DstackError
  from dstack._internal.core.models.repos.base import BaseRepoInfo, Repo, RepoProtocol
  from dstack._internal.utils.hash import get_sha256, slugify
  from dstack._internal.utils.path import PathLike
  from dstack._internal.utils.ssh import get_host_config
label_desc: Use image node_id 2 for calling a global function with example usage: _repo_diff_verbose(repo, repo_hash, warning_time) and returns: collector