$ hg init t $ cd t $ echo a > a $ hg add a $ hg commit -m "test" $ hg verify checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 1 changesets, 1 total revisions $ hg parents changeset: 0:acb14030fe0a tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: test $ hg status $ hg rollback repository tip rolled back to revision -1 (undo commit) working directory now based on revision -1 $ hg verify checking changesets checking manifests crosschecking files in changesets and manifests checking files 0 files, 0 changesets, 0 total revisions $ hg parents $ hg status A a Test issue 902 $ hg commit -m "test2" $ hg branch test marked working directory as branch test $ hg rollback repository tip rolled back to revision -1 (undo commit) working directory now based on revision -1 $ hg branch default Test issue 1635 (commit message saved) .hg/last-message.txt: $ cat .hg/last-message.txt ; echo test2 Test rollback of hg before issue 902 was fixed $ hg commit -m "test3" $ hg branch test marked working directory as branch test $ rm .hg/undo.branch $ hg rollback repository tip rolled back to revision -1 (undo commit) named branch could not be reset, current branch is still: test working directory now based on revision -1 $ hg branch test rollback by pretxncommit saves commit message (issue 1635) $ echo a >> a $ hg --config hooks.pretxncommit=false commit -m"precious commit message" transaction abort! rollback completed abort: pretxncommit hook exited with status * (glob) [255] .hg/last-message.txt: $ cat .hg/last-message.txt ; echo precious commit message same thing, but run $EDITOR $ cat > editor << '__EOF__' > #!/bin/sh > echo "another precious commit message" > "$1" > __EOF__ $ chmod +x editor $ HGEDITOR="'`pwd`'"/editor hg --config hooks.pretxncommit=false commit 2>&1 transaction abort! rollback completed note: commit message saved in .hg/last-message.txt abort: pretxncommit hook exited with status * (glob) [255] $ cat .hg/last-message.txt another precious commit message test rollback on served repository $ hg commit -m "precious commit message" $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log $ cat hg.pid >> $DAEMON_PIDS $ cd .. $ hg clone http://localhost:$HGPORT u requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files updating to branch test 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd u $ hg id default 1df294f7b1a2 now rollback and observe that 'hg serve' reloads the repository and presents the correct tip changeset: $ hg -R ../t rollback repository tip rolled back to revision -1 (undo commit) working directory now based on revision -1 $ hg id default 000000000000