Mercurial > public > mercurial-scm > hg-stable
diff mercurial/localrepo.py @ 9934:720f70b720d3
commit: save commit message so it's not destroyed by rollback.
(issue1635)
Rationale: if a pretxncommit hook rejects this commit, the transaction
is rolled back and the user's commit message is irrevocably lost.
So save a copy in .hg/last-message.txt, just in case. Also handy if
the user deliberately rolls back a commit in order to amend it.
author | Greg Ward <greg-hg@gerg.ca> |
---|---|
date | Tue, 24 Nov 2009 21:08:39 -0500 |
parents | ea3acaae25bb |
children | 48b81d9bca8d |
line wrap: on
line diff
--- a/mercurial/localrepo.py Fri Aug 14 08:19:49 2009 -0400 +++ b/mercurial/localrepo.py Tue Nov 24 21:08:39 2009 -0500 @@ -835,6 +835,15 @@ state[s] = (state[s][0], sr) subrepo.writestate(self, state) + # Save commit message in case this transaction gets rolled back + # (e.g. by a pretxncommit hook). (Save in text mode in case a + # Windows user wants to edit it with Notepad. Normalize + # trailing whitespace so the file always looks the same -- + # makes testing easier.) + msgfile = self.opener('last-message.txt', 'w') + msgfile.write(cctx._text.rstrip() + '\n') + msgfile.close() + ret = self.commitctx(cctx, True) # update dirstate and mergestate