diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -837,12 +837,10 @@ class localrepository(repo.repository): 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') + # (e.g. by a pretxncommit hook). Leave the content alone on + # the assumption that the user will use the same editor again. + msgfile = self.opener('last-message.txt', 'wb') + msgfile.write(cctx._text) msgfile.close() try: diff --git a/tests/test-rollback b/tests/test-rollback --- a/tests/test-rollback +++ b/tests/test-rollback @@ -22,7 +22,7 @@ hg branch echo '% Test issue 1635 (commit message saved)' echo '.hg/last-message.txt:' -cat .hg/last-message.txt +cat .hg/last-message.txt ; echo echo % Test rollback of hg before issue 902 was fixed hg commit -m "test3" @@ -35,7 +35,7 @@ echo '% rollback by pretxncommit saves c echo a >> a hg --config hooks.pretxncommit=/bin/false commit -m"precious commit message" echo '.hg/last-message.txt:' -cat .hg/last-message.txt +cat .hg/last-message.txt ; echo echo '% same thing, but run $EDITOR' cat > $HGTMP/editor <<'__EOF__'