📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。
​
​

在 TiDB Cloud Filesystem 上为智能体准备 Git 工作区



在大型仓库完成下载前启动智能体任务。当临时机器上的智能体需要立即检查或编辑文件时,可使用带后台补全的 blobless Git 工作区。

工作原理

ti fs-git clone-git-workspace --blobless --hydrate background 会注册一个 Git 工作区,并在所有干净 blob 完成下载之前暴露其文件树。智能体可以在 ti 下载其余干净文件内容并填充本地 Git 对象数据库的同时开始工作。这个后台过程称为补全,可减少重复的按需抓取。在补全完成前的读操作会使用 Git 的惰性抓取来检索缺失的数据。

替换后的智能体运行时可以访问已注册的工作区。在丢弃原始机器之前,请按照下方清理指南中的说明保留本地 Git 历史记录。使用你常用的工具编辑文件,并使用 Git 命令进行提交、抓取和推送。

前提条件

  • 选择一个文件系统。
  • 使用 Linux FUSE,或在 macOS 上安装 macFUSE 并显式指定 --driver fuse。Git 工作区依赖 FUSE 将远程 Git 树和工作区变更组合到挂载路径中;WebDAV 挂载不提供这种集成。
  • 安装 Git 并配置仓库认证。

第 1 步:挂载工作区

mkdir -p /path/to/workspace ti fs mount-file-system \ --mount-path /path/to/workspace \ --driver fuse \ --mount-profile coding-agent

第 2 步:创建工作区并在后台补全

ti fs-git clone-git-workspace \ --repo-url https://github.com/pingcap/tidb.git \ --target-path /path/to/workspace/tidb \ --blobless \ --hydrate background

现在工作区树已可用,补全过程会在后台继续进行。让智能体使用普通命令开始工作:

find /path/to/workspace/tidb -maxdepth 2 -type f | head git -C /path/to/workspace/tidb status

在执行确定性基准测试之前,或在对刷写挂载之前,你可以显式等待补全完成:

ti fs-git hydrate-git-workspace \ --target-path /path/to/workspace/tidb \ --timeout 30m

第 3 步:创建智能体工作树

ti fs-git add-git-worktree \ --base-path /path/to/workspace/tidb \ --worktree-path /path/to/workspace/tidb-agent-task \ --branch-name agent-task

现在,智能体可以使用普通工具:

git -C /path/to/workspace/tidb-agent-task status

在移除工作树之前,请先提交所需的更改。在丢弃机器之前,请通过推送或经验证的本地 Git 元信息备份来保留并验证 Git 历史记录。

清理

ti fs-git remove-git-worktree \ --worktree-path /path/to/workspace/tidb-agent-task ti fs unmount-file-system --mount-path /path/to/workspace

仅当可以丢弃未提交更改时,才对工作树移除使用 --force。文件系统卸载会自动执行优雅的刷写;仅当你需要在不卸载的情况下将远程工作刷写出去时,才单独使用 ti fs drain-file-system。

安全与操作说明

  • 仓库凭据由 Git 管理,而不是 ti。
  • coding-agent 挂载预设会将 Git 元信息、依赖关系目录、缓存、构建输出以及其他生成文件保留在本地机器上,以提升性能。
  • 由 coding-agent 配置保留在本地的文件会随着临时机器消失。仅有本地提交并不能在不同机器之间保留 Git 历史记录。请推送并验证所需的提交,并使用带有显式 --path 值的 pack-file-system 来保留其他无法重新构建的本地文件。

后续内容

文档内容是否有帮助?