Stripping hidden changesets breaks "hg outgoing"
Greg Ward
greg at gerg.ca
Tue Feb 5 08:49:53 CST 2013
Hi all --
I've been using evolve instead of MQ pretty happily for a couple of
weeks now. Of course I didn't find any bugs during the 2.5 feature
freeze. ;-) But I did accrue a lot of hidden changesets that I don't
care about anymore; the history in question has settled down and been
published. So I thought I would clean up a bit.
With a bit of head-scratching, I figured out how to list only hidden
changesets:
hg log --hidden -r 'hidden()'
(File that under "not obvious"!)
So I decided to strip some of the oldest hidden changesets:
$ hg strip 311 --hidden
saved backup bundle to /home/greg/src/fubsy/.hg/strip-backup/967ddf2d89b6-backup.hg
$ hg strip 311 --hidden
saved backup bundle to /home/greg/src/fubsy/.hg/strip-backup/db3731d77cf1-backup.hg
$ hg strip 311 --hidden
saved backup bundle to /home/greg/src/fubsy/.hg/strip-backup/971c100522a8-backup.hg
All fine so far. Then I wanted to make sure I hadn't screwed up and
stripped any valuable changesets:
$ hg in
comparing with ssh://hg.gerg.ca//home/hg/fubsy/
searching for changes
no changes found
Good. And because I'm paranoid:
$ hg out
comparing with ssh://hg.gerg.ca//home/hg/fubsy/
searching for changes
abort: unknown revision 'ce0a27dd3d06ea138f2a45568fd51d0d0a44f9a2'!
Oooops! That is indeed one of the changesets I stripped. So, something
somewhere is incorrectly remembering that changeset ID: who?
$ find .hg -type f | xargs grep ce0a27dd3d06ea138f2a45568fd51d0d0a44f9a2
.hg/store/phaseroots:1 ce0a27dd3d06ea138f2a45568fd51d0d0a44f9a2
Hmmm. My guess is that manually editing phaseroots will "fix" things,
but I'll avoid that for now.
Do you need me to provide my pre-strip repo with all the hidden
changesets? Or is this enough info for a evolve/hidden/filtering
expert to reproduce?
Greg
--
Greg Ward http://www.gerg.ca
<greg at gerg.ca> @gergdotca
More information about the Mercurial-devel
mailing list