As we're actually not *currently* dealing with the encoding while recreating the `Commit`, maybe would it be safer to make the setter private?