Mercurial: "abandoned transaction found - run hg recover". Recover does not work
Solution 1
I experienced a similar issue and reported it as a bug, and the developer on the report suggested the problem is a corrupt journal. As described in the bug report, you can run hg verify
to see the last "good" commit, and use hg clone -r <#>
to recover up until that commit.
Solution 2
I think this is actually a bug in the code source. You should report the error to the Mercurial team like said in the error message.
Related videos on Youtube
ice
Updated on June 04, 2022Comments
-
ice almost 2 years
Using tortoise hg on windows, I did a pull from a repository on my local drive to a repository on a usb stick.
During the pull i guess there was a glitch in the usb-connection because it got aborted half way through.
Now i can't pull again. I get the message:
abandoned transaction found - run hg recover
When i run hg recover i get the following message:
rolling back interrupted transaction ** unknown exception encountered, details follow ** report bug details to http://mercurial.selenic.com/bts/ ** or [email protected] ** Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)] ** Mercurial Distributed SCM (version 1.6.3) ** Extensions loaded: fixfrozenexts Traceback (most recent call last): File "hg", line 36, in <module> File "mercurial\dispatch.pyo", line 16, in run File "mercurial\dispatch.pyo", line 34, in dispatch File "mercurial\dispatch.pyo", line 54, in _runcatch File "mercurial\dispatch.pyo", line 494, in _dispatch File "mercurial\dispatch.pyo", line 355, in runcommand File "mercurial\dispatch.pyo", line 545, in _runcommand File "mercurial\dispatch.pyo", line 499, in checkargs File "mercurial\dispatch.pyo", line 492, in <lambda> File "mercurial\util.pyo", line 420, in check File "mercurial\commands.pyo", line 2869, in recover File "mercurial\localrepo.pyo", line 606, in recover File "mercurial\transaction.pyo", line 173, in rollback ValueError: too many values to unpack
If i try to rollback manually i get this message:
no rollback information available
This time i can quite easily just delete the whole backup on my stick and do a fresh pull because the repo is small and the usb-stick does not contain any other changes. But what if this happens on a larger repo where i can't afford to restart from scratch? How can i recover the repo?
-
ice about 13 yearsOf course i always try to do safe removal but this time the wire was attached loosely. Can this really cause the whole repo to go out of control? I thought everything was done with transactions ala sql so you could always roll back if something goes bad.
-
-
qbik almost 10 yearsI agree. Had the same issue for mercurial version
3.0+3
- reverted to version2.5.2
: bitbucket.org/tortoisehg/files/downloads/… and the rollback command passed.