Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Minor expansion of application order docs #3201

Merged
merged 1 commit into from
Aug 29, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.