Stripping hidden changesets breaks "hg outgoing"

Kevin Bullock kbullock+mercurial at ringworld.org
Tue Feb 5 11:46:02 CST 2013


On Feb 5, 2013, at 11:27 AM, Aurélien Campéas wrote:

> Le 05/02/2013 17:09, Greg Ward a écrit :
>> Ouch. So I could get back to work with minimal fuss, I tried editing
>> .hg/store/phaseroots to remove the stripped changeset that "hg out"
>> was complaining about. Then, because I'm an idiot (or something), I
>> tried stripping *just one more* hidden changeset:
>> 
>>   $ hg strip 316
>>   saved backup bundle to /home/greg/src/fubsy/.hg/strip-backup/ce0a27dd3d06-backup.hg
>>   ** Unknown exception encountered with possibly-broken third-party extension evolve
>>   ** which supports versions unknown of Mercurial.
>>   ** Please disable evolve and try your action again.
>>   ** If that fixes the bug please report it to https://bitbucket.org/marmoute/mutable-history/issues
>>   ** Python 2.7.3 (default, Sep 26 2012, 21:51:14) [GCC 4.7.2]
>>   ** Mercurial Distributed SCM (version 2.5+2-151f78a07607)
>>   ** Extensions loaded: mq, patchbomb, record, purge, share, extdiff, progress, color, rebase, evolve
>>   Traceback (most recent call last):
>>     File "/home/greg/bin/hg", line 38, in<module>
>>       mercurial.dispatch.run()
> [...]
>>     File "/home/greg/src/hg-stable/mercurial/ancestor.py", line 230, in __iter__
>>       for parent in parentrevs(visit.popleft()):
>>     File "/home/greg/src/hg-stable/mercurial/changelog.py", line 204, in parentrevs
>>       raise IndexError(rev)
>>   IndexError: 445
>> 
>> Disabling evolve avoided that problem.
>> 
>> Moral of the story: if you want to go hunting for bugs in Mercurial
>> and/or evolve, try stripping hidden changesets. If you just want to
>> get work done, don't!
>> 
>> I've saved a tarball of the hosed repo + working dir (open source, 80
>> MB) if anyone is interested. I've recloned from my public repo to
>> clean up hidden changesets the "safe" way.
>> 
>>        Greg
> 
> That looks like a bad (and possibly recent) regression anyway.
> 
> Sometimes I "garbage collect" some repos full of obsolete changesets
> (with something like 'hg strip "obsolete()"') and it does not crash and
> burn like this.
> 
> (Could the recent branchmap cache patches have introduced some pbs. wrt stripping ?)

Shouldn't be; phaseroots and branchcache are independent of each other.

pacem in terris / мир / शान्ति / ‎‫سَلاَم‬ / 平和
Kevin R. Bullock



More information about the Mercurial-devel mailing list