From ab7479e62da48a353ce5d6931a9ce631c4912154 Mon Sep 17 00:00:00 2001 From: mikael-lovqvists-claude-agent Date: Sat, 7 Mar 2026 01:36:21 +0000 Subject: [PATCH] Phase 6: replace rm+rename with rsync --delete pend/ prev/ --- lib/commands/run.js | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/lib/commands/run.js b/lib/commands/run.js index b497899..d225036 100644 --- a/lib/commands/run.js +++ b/lib/commands/run.js @@ -1,7 +1,7 @@ /** * run command — full backup run. */ -import { mkdir, rename, writeFile } from 'fs/promises'; +import { mkdir, writeFile } from 'fs/promises'; import { join } from 'path'; import { run as spawn, capture } from '../spawn.js'; import { parseItemize } from '../itemize.js'; @@ -132,14 +132,7 @@ export async function runCommand(config) { // ── Phase 6: Promote PEND → PREV ──────────────────────────── await setPhase(deltas, state, PHASES.PROMOTING, dry); console.log('\n── Promote PEND → PREV ──'); - - if (!dry) { - await rm(prev, { recursive: true, force: true }); - await rename(pend, prev); - console.log(` ${pend} → ${prev}`); - } else { - console.log(`[dry-run] rm -rf ${prev} && mv ${pend} ${prev}`); - } + await spawn('rsync', ['-aP', '--delete', trailingSlash(pend), trailingSlash(prev)], { dryRun: dry }); // ── Done ───────────────────────────────────────────────────── state.last_complete = seq;