Better dry run, and no file write if there's no change