aboutsummaryrefslogtreecommitdiff
path: root/docs/design.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/design.md')
-rw-r--r--docs/design.md13
1 files changed, 9 insertions, 4 deletions
diff --git a/docs/design.md b/docs/design.md
index 4196894..cfb2c55 100644
--- a/docs/design.md
+++ b/docs/design.md
@@ -470,10 +470,15 @@ Conflicts between files in the same plan are resolved when planning, so the
plan shows final names. An in-plan claim is never displaced: when `overwrite`
finds a target another step of the same plan has already claimed, it takes the
next free name instead, because that path will hold the other step's output by
-the time either runs, and displacing it would destroy that step's result. The
-claim set spans the whole run, so two configured directories cannot plan the
-same final name. The executor re-checks at execution time; if the
-name has to change, the log records the actual name.
+the time either runs, and displacing it would destroy that step's result. A
+real run applies each directory before planning the next, so a later
+directory sees the earlier one's result on disk and its claims end with it.
+A dry run (`-n`) applies nothing: its claim set spans every directory, so two
+configured directories cannot show the same final name, but each directory is
+otherwise planned as if no earlier one had been applied (a file the first
+moves into the second is not in the second's plan). The executor re-checks
+at execution time; if the name has to change, the log records the actual
+name.
## 8. Plan, review, approval