連線至已設定的工作區服務

連線至已設定的工作區服務、檢查實驗與保留的檔案,並套用經過審查的單一檔案取代作業及執行衝突復原。

使用 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":[]}}

伴隨 httpStatus: null 的 STUDIO_ENDPOINT_REQUIRED 會以結束代碼 2 結束:請設定維運人員提供的來源並重新執行。如果是 HTTP 401,請向維運人員取得對應的服務密鑰。若取代後發生逾時,請先檢查目前的檔案並重新搜尋,再決定是否進行另一次更新。