로컬 파일 만들기, 바꾸기, 삭제하기

전체 작성 계획으로 로컬 파일과 폴더의 변경 사항을 검토하고 적용합니다.

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을 교체 요청에 사용하세요. 이 예제에서는 JSON을 준비하는 데 jq를 사용합니다.

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에 전달하세요.

CLI 첫 실행