建立、取代及刪除本機檔案
透過完整的檔案編寫計畫,檢閱並套用本機檔案與資料夾的變更。
在Linux上使用Altifigence CLI 0.1.9,檢閱本機檔案的變更,並將完整計畫套用至同一個專案。
建立檔案與資料夾
請使用本機專案的絕對路徑。此範例使用$HOME/alti-projects/demo-project。請以一般使用者身分執行命令。檢閱及套用計畫期間,請暫停其他寫入作業。
set -euo pipefail
PROJECT="$(cd "$HOME/alti-projects/demo-project" && pwd -P)"
WORK="$(mktemp -d)"
cat > "$WORK/create.json" <<'JSON'
[
{"kind":"create-directory","path":"notes"},
{"kind":"create","path":"notes/review.txt","content":"First review\n"}
]
JSON
alti ide workspace file-plan --project "$PROJECT" \
--request "$WORK/create.json" > "$WORK/create.plan.json"請確認結束狀態為0,然後讀取完整計畫:
cat "$WORK/create.plan.json"計畫的結構描述為altifigence.workspace-authoring-plan.v1。請檢閱changes、observations及request,並保留整份文件。計畫中的路徑以專案為相對基準。
套用已儲存的計畫:
alti ide workspace file-apply --project "$PROJECT" \
--request "$WORK/create.plan.json" > "$WORK/create.receipt.json"
jq '{schema, outcome}' "$WORK/create.receipt.json"結束狀態為0後,所選回條欄位如下:
{
"schema": "altifigence.workspace-file-receipt.v1",
"outcome": "committed"
}取代檔案
讀取目前的檔案,並將其SHA-256用於取代請求。這些範例使用jq準備JSON。
alti ide workspace read --project "$PROJECT" notes/review.txt \
> "$WORK/current.json"
jq '[{kind:"replace",path:"notes/review.txt",
expected_sha256:.sha256,content:"Second review\n"}]' \
"$WORK/current.json" > "$WORK/replace.json"
alti ide workspace file-plan --project "$PROJECT" \
--request "$WORK/replace.json" > "$WORK/replace.plan.json"
cat "$WORK/replace.plan.json"檢閱取代內容,然後套用:
alti ide workspace file-apply --project "$PROJECT" \
--request "$WORK/replace.plan.json" > "$WORK/replace.receipt.json"
jq '{schema, outcome}' "$WORK/replace.receipt.json"請確認結束狀態為0,且outcome等於committed。
刪除檔案
再次讀取檔案以取得目前的摘要,然後準備刪除:
alti ide workspace read --project "$PROJECT" notes/review.txt \
> "$WORK/current.json"
jq '[{kind:"delete",path:"notes/review.txt",expected_sha256:.sha256}]' \
"$WORK/current.json" > "$WORK/delete.json"
alti ide workspace file-plan --project "$PROJECT" \
--request "$WORK/delete.json" > "$WORK/delete.plan.json"
cat "$WORK/delete.plan.json"檢閱刪除內容,然後套用:
alti ide workspace file-apply --project "$PROJECT" \
--request "$WORK/delete.plan.json" > "$WORK/delete.receipt.json"
jq '{schema, outcome}' "$WORK/delete.receipt.json"請確認結束狀態為0,且outcome等於committed。
處理已變更的檔案
若命令回報workspace file precondition changed: notes/review.txt,請再次讀取檔案。檢閱目前的內容,以新的sha256準備所需的取代或刪除,並在套用前產生及檢閱新的計畫。
若回報authoring plan changed or is stale; generate and review a new plan,請為同一個專案重新產生計畫,檢閱後再套用。
請使用上方命令儲存原生計畫。以全域--json儲存的計畫位於執行回條的stdout字串中。請將完整的原生計畫傳給file-apply。