Skip to content

Commit

Permalink
docs: Minor expansion of application order docs
Browse files Browse the repository at this point in the history
The discussion in #3198 suggests some confusion about the order of
application. This adds a little more context.
  • Loading branch information
halostatue committed Aug 29, 2023
1 parent f6947d3 commit 3af9ae4
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions assets/chezmoi.io/docs/reference/application-order.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ chezmoi is deterministic in its order of application. The order is:
2. Read the destination state.
3. Compute the target state.
4. Run `run_before_` scripts in alphabetical order.
5. Update entries in the target state (files, directories, scripts, symlinks,
etc.) in alphabetical order of their target name.
5. Update entries in the target state (files, directories, externals, scripts,
symlinks, etc.) in alphabetical order of their target name. Directories
(including those created by externals) are updated before the files they
contain.
6. Run `run_after_` scripts in alphabetical order.

Target names are considered after all attributes are stripped.
Expand All @@ -26,3 +28,9 @@ chezmoi's behavior when the above assumptions are violated is undefined. For
example, using a `run_before_` script to update files in the source or
destination states violates the assumption that the source and destination
states do not change while chezmoi is running.

!!! note

External sources are updated during the update phase; it is inadvisable for
a `run_before_` script to depend on an external applied *during* the update
phase. `run_after_` scripts may freely depend on externals.

0 comments on commit 3af9ae4

Please sign in to comment.