After discussion on JENKINS-18187, it appears to be a nice feature to not commit SYSTEM-modified files "just after modification"
I imagine :
- A checkbox saying "activate delayed and periodic SYSTEM commit every XXX hours" (XXX would be a user input).
- When a SYSTEM modification is detected, 2 possibilities :
- There is already a recent commit which have been made by SYSTEM : on this case, we will queue every modified files in a List<Path>, which will grow until next SYSTEM commit
- Latest commit was made a long time ago (period > XXX hours) : in that case, we take the List<Path> and commit it
- When a non-SYSTEM modification is detected, we commit it with the desired user, and remove changeset's paths from the SYSTEM's List<Path> queue
Only drawback here, will be we could commit things made both by SYSTEM and user modifications
If you think about better implementation for this feature, don't hesitate to share your POV