only commit if anything has changed