Improve and harden alt file regeneration #466
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Improvements include:
What issues does this PR fix or reference?
In both Linux and WSL, I saw many temporary files created in the form
.template.nnnn.nnnnn
appear in my yadm managed directory. It was pretty common, sometimes happening several times in one day.Previous Behavior
See above.
New Behavior
The new code skips regenerating the alt file if its contents have not changed. While this means we now read the old alt file before rewriting it, the vast majority of the time the contents are unchanged, so this extra read is offset by the skipped write and move.
While there is a small amount of time between reading the alt file, and rewriting it, the chance of a race condition inside this window is small, as yadm should be the only program running against these files.
Have tests been written for this change?
No. The existing tests should be sufficient as we aren't adding new functions or new logic.
Have these commits been signed with GnuPG?
Yes!
Please review yadm's Contributing Guide for best practices.