Comments (2)
Thanks for spotting this. This is an interesting case of non-orthogonality in chezmoi.
The tl;dr is that .chezmoiremove
is a separate system to chezmoi's source state and they don't interact well. Use the remove_
attribute on the directory instead.
Note that this is not specific to exact_
directories, so I'll ignore exact_
.
In a sense, the configuration that you have is inconsistent: it states that foo
and foo/bar
should exist (because they are present in the source state) and also that foo
should be removes. The reason that chezmoi does not detect the inconsistency is because chezmoi's order of operations is roughly:
- Read the source state.
- Make a list of files and directories that match any
.chezmoiremove
lines. - Apply the source state.
- Remove the files and directories found in stage 2.
In your case, foo
does not exist at stage 2, so it is not added to the list, and therefore created in stage 3 and not removed in stage 4.
Instead, use the remove_
attribute on foo
, which will tell chezmoi to remove the directory if it is empty.
from chezmoi.
Hopefully this is now resolved. Please re-open if needed.
from chezmoi.
Related Issues (20)
- SOPS Support HOT 7
- Config variables `autoAdd = true` and `autoCommit = true` don't seem to add or commit changes HOT 2
- bitwarden and bitwardenFields template functions seems not working HOT 2
- Optional speed up to chezmoi doctor
- Chezmoi cd exits git bash in windows terminal HOT 2
- promptString is not yielding the expected result HOT 7
- Raspberry Pi Illegal Operation HOT 4
- Flag --managed to `add` all managed files HOT 4
- Release appears to be corrupt HOT 2
- Adding .local/bin hangs HOT 3
- `chezmoi edit <target file>` hardlink functionality breaks across btrfs subvolumes HOT 1
- tests hang when umask is 027
- Chezmoi by default pipes to `less` pager HOT 2
- `scriptTempDir` configuration variable is ignored for `modify_` scripts HOT 5
- Integrate 1Password SDKs to remove dependency on CLI HOT 2
- Support .bz2 for external archives HOT 2
- Of autoCommit and branches HOT 2
- Is there a way to avoid being prompted for password manager password on every operation? HOT 6
- hooks.read-source-state.pre cannot find script HOT 7
- `chezmoi apply` overwrites any files that were placed by chezmoi, no matter the source HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chezmoi.