连接已配置的工作区服务

连接已配置的工作区服务,检查实验和保留的文件,并在支持冲突恢复的情况下执行经过审查的单文件替换。

在 Linux 上使用 Altifigence CLI 0.1.9 访问现有的 Digital Design Studio 工作区服务。服务运维人员提供服务源地址、工作区访问权限及已启用的功能。请求访问该服务的工作区文件和实验。

读取已保存的结果之前,确认退出状态为 0。单独保留标准错误输出,并检查下文所述的结果字段。

配置连接

将 ALTI_STUDIO_ENDPOINT 设置为运维人员提供的源地址。远程服务使用 HTTPS;IP 回环服务可使用 HTTP。提供路径为空的源地址,并在启用身份验证时配置运维人员提供的 ALTI_STUDIO_SERVICE_SECRET。CLI 将此值作为 x-service-secret 发送。每条命令也可通过 --endpoint 选择源地址。

检查实验和保留的文件

配置连接后,列出最多 5 个实验。空工作区返回如下示例回执;HTTP 200 对应退出码 0。

alti --json ide service evolve list --limit 5
{"schema":"altifigence.dds.service-receipt.v1","operation":"evolve.list","ok":true,"httpStatus":200,"body":{"runs":[]}}

对于保留的结果,请使用其在服务工作区中的确切路径。将本示例路径替换为您获授权的工作区中实际存在的文件。响应正文保留所有者的文件字段,包括 content。

alti --json ide service evolve read-file evolve/adder/results/report.md

搜索并替换一个经过审查的文件

工作区文本搜索需要 Linux 服务。请在稍后执行替换的同一服务上搜索,然后审查匹配文件、位置和覆盖范围元数据。每个匹配项都带有 contentHash。CLI 保留 truncated 和 replaceScopeComplete,供您评估返回的范围。

alti --json ide service workspace search --query old_signal --match-case --whole-word

将以下内容保存为 replace.json,并将示例中的 64 字符哈希替换为所选 rtl/top.sv 匹配项的实际 contentHash。查询和选项应与审查时保持一致。此请求针对一个文件;省略 match 时,替换会应用于该文件中的匹配项。预期哈希将更新绑定到您审查过的文件版本。

{
  "query": "old_signal",
  "replacement": "new_signal",
  "options": {
    "matchCase": true,
    "wholeWord": true
  },
  "paths": [
    "rtl/top.sv"
  ],
  "expectedHashes": {
    "rtl/top.sv": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  }
}
alti --json ide service workspace replace --request replace.json

处理冲突和配置错误

如果文件已发生更改,将返回如下示例冲突回执。HTTP 409 对应退出码 1。请在同一服务上重新搜索,审查当前匹配项和文件版本,然后使用新的 contentHash 更新 expectedHashes,再提交新的替换请求。

{"schema":"altifigence.dds.service-receipt.v1","operation":"workspace.replace","ok":false,"httpStatus":409,"body":{"ok":false,"code":"search_replace_conflict","conflicts":[{"path":"rtl/top.sv","expectedHash":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","actualHash":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"}],"replacements":0,"files":[]}}

STUDIO_ENDPOINT_REQUIRED 且 httpStatus: null 时,退出码为 2:请配置运维人员提供的源地址并重新运行。对于 HTTP 401,请向运维人员获取匹配的服务密钥。如果替换后超时,请先检查当前文件并重新搜索,再决定是否再次更新。