Создание, замена и удаление локальных файлов
Проверяйте и применяйте изменения локальных файлов и папок с помощью полных планов редактирования.
Используйте Altifigence CLI 0.1.9 в Linux, чтобы проверить изменения локальных файлов и применить полный план к тому же проекту.
Создание файлов и папок
Используйте абсолютный путь к локальному проекту. В этом примере используется $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.