immutable commit messages, why?

Stuart McGraw smcg4191 at frii.com
Wed Mar 19 19:53:53 CDT 2008


Martin Geisler wrote:
> Stuart McGraw <smcg4191 at frii.com> writes:
> 
>> I suspect the real reason commit messages are revision controlled is
>> that DVCS' have a hammer for managing immutable revisions and it was
>> more expedient (and seemed cool) to shape commit messages into the
>> form of a revision nail, than to invent a whole separate mechanism for
>> managing them. And that poor commit messages aren't a show-stopper
>> problem for most users so they are simply lived with.
> 
> I think it *is* cool to make all the meta data be part of the commit.
> Given one changeset hash (which I trust) I know that every commit
> message is trustworthy.

Do you know that?  Even if your definition of trustworthy 
is that it hasn't been changed after it was commited, how 
do you know, when you accept a changeset from "me", that 
my machine wasn't compromised, etc.  Whatever guaranties 
you have are provided outside of Mercurial, yes?
And I would prefer a higher standard of trustworthiness: 
that a commit message accurately describes a changeset.  
Immutable commit messages are a barrier to achieving that.

>> I can imagine a DVCS where the commit message do not participate in
>> the revision hashes and have a timestamp or independent hash. When a
>> merge having changesets with differing commit messages is done, the
>> merger would be asked (or a configured policy consulted) to determine
>> which to accept.
> 
> Could you not just make a Wiki where you export all commit messages once
> and then update them as you find errors? Then you would have your
> free-floating commit messages along side your normal commits.

A centralized wiki would rather contradict the distributed
nature of a DVCS.  And if one is going to maintain the 
commit messages outside the VCS, what point in even supplying
commit messages to the VCS?

But I actually do something like that currently with some CVS
projects: an old fashioned ChangeLog file. Of course I could 
do that with Mercurial too, but was hoping for an improvement 
to that wart in my process.



More information about the Mercurial mailing list