[issue878] strip without qpop confuses repository

Vladimir Marek mercurial-bugs at selenic.com
Sat Dec 15 02:52:30 CST 2007

New submission from Vladimir Marek <Vladimir.Marek at Sun.COM>:


=================================== testfail ===================================

set -x

rm -rf testmq
hg init testmq
cd testmq

echo file > file
hg ci -A -m file

hg qinit -c
hg qnew patch
echo patch > file
hg qrefresh

hg strip 1
hg log

The last hg log says:

abort: 00changelog.i: no node a082a73cdcfd405ce22dd3c0d485b1a6c915eb08!

$ cat .hg/patches/status

Trimming the .hg/patches/status 'fixes' the repo

Question may be ask why I'm stripping instead of qpoping. I just created
shortest reproducible case. The same effect can be seem when you try to strip
real changesets (which can't be qpoped), with mq applied on top.

I can see three possibilites how to fix this

a) warn user about mq applied and bail out
b) be more clever in strip, and update .hg/patches/status accordingly
c) qpop internally first, then strip

Thank you


messages: 4621
nosy: VladimirMarek
priority: bug
status: unread
title: strip without qpop confuses repository
topic: mq

Mercurial issue tracker <mercurial-bugs at selenic.com>

More information about the Mercurial-devel mailing list