git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Rodolfo Giometti <giometti@enneenne.com>, git@vger.kernel.org
Subject: Re: Modify/edit old commit messages
Date: Thu, 1 Feb 2007 08:41:32 -0800 (PST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0702010829560.3632@woody.linux-foundation.org> (raw)
In-Reply-To: <Pine.LNX.4.63.0702011326130.22628@wbgn013.biozentrum.uni-wuerzburg.de>



On Thu, 1 Feb 2007, Johannes Schindelin wrote:
> 
> On Thu, 1 Feb 2007, Rodolfo Giometti wrote:
> > 
> > I'm puzzled... how can I modify or edit old commit messages? :)
> 
> Short answer: you can't.

Side note, just out of historical interest: in BK you could.

And if you're used to it (like I was) it was really quite practical. I 
would apply a patch-bomb from Andrew, notice something was wrong, and just 
edit it before pushing it out.

I could have done the same with git. It would have been easy enough to 
make just the commit message not be part of the name, and still guarantee 
that the history was untouched, and allow the "fix up comments later" 
thing.

But I didn't.

Part of it is purely "internal consistency". Git is simply a _cleaner_ 
system thanks to everything being SHA1-protected, and all objects being 
treated the same, regardless of object type. Yeah, there are four 
different kinds of objects, and they are all really different, and they 
can't be used in the same way, but at the same time, even if their 
encoding might be different on disk, *conceptually* they all work exactly 
the same.

But internal consistency isn't really an excuse for being inflexible, and 
clearly it would be very flexible if we could just fix up mistakes after 
they happen. So that's not a really strong argument.

The *real* reason git doesn't allow you to change the commit message ends 
up being very simple: that way, you can trust the messages. If you allowed 
people to change them afterwards, the messages are inherently not very 
trustworthy.

In BK, for example, if you edited the commit message after already pushing 
it out, it would *work*, but the stuff you pushed out would obviously not 
be changed, so different repositories would literally have different 
commit messages. I did it anyway a few times when some really irritating 
typo just made me say "I can't stand reading that typo over and over 
again, I'll fix it in my tree and screw everybody else".

But it's also very important because nobody *else* can mess with your 
history without it being obvious to everybody who has ever seen the 
pristine one, and nobody can change what you said later. Yeah, there's a 
few embarrassing typo's in the kernel history. We'll never be able to live 
down the fact that spelling and grammar is the dificultest for us. And we 
have some bugs where people have corrupt email addresses etc.

And I'll take guaranteed history over typos any day. 

			Linus

  reply	other threads:[~2007-02-01 16:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-01 11:49 Modify/edit old commit messages Rodolfo Giometti
2007-02-01 12:28 ` Johannes Schindelin
2007-02-01 16:41   ` Linus Torvalds [this message]
2007-02-01 17:17   ` Johannes Schindelin
2007-02-01 23:24 ` Jakub Narebski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0702010829560.3632@woody.linux-foundation.org \
    --to=torvalds@linux-foundation.org \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=giometti@enneenne.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).