Crash running rebase (tip of crew)
Greg Ward
greg-hg at gerg.ca
Sun Apr 19 10:39:51 CDT 2009
I'm running the tip of crew, rebasing my local patches on top of the
latest incoming changes. I managed to make rebase crash. Note that
I'm hacking on the same hg working copy that I'm running (~/bin/hg ->
~/src/hg-crew/hg).
Here's what happened:
$ hg heads
changeset: 8084:64544ebbdbf3 <<< my current local patch
tag: tip
parent: 8078:6c3b8132078e
user: Greg Ward <greg-hg at gerg.ca>
date: Mon Mar 23 21:34:07 2009 -0400
summary: Add test for CVS merge detection.
changeset: 8083:6645d31ce07c <<< my previous patch
(submitted)
user: Greg Ward <greg-hg at gerg.ca>
date: Sat Apr 18 13:29:48 2009 -0400
summary: Reproduce crash where synthetic revs break merge
detection (issue1578).
To keep history linear, I want to rebase 8084 on top of 8083.
(They're different heads because I just pulled 8084 from
../hg-crew-stable.)
$ hg up -C 8084
$ hg rebase -d 8083
saving bundle to /home/scratch/src/hg-crew/.hg/strip-backup/64544ebbdbf3-temp
** unknown exception encountered, details follow
** report bug details to http://www.selenic.com/mercurial/bts
** or mercurial at selenic.com
** Mercurial Distributed SCM (version 81aba9e79054)
** Extensions loaded: children, convert, graphlog, mq, patchbomb, rebase
Traceback (most recent call last):
File "/home/greg/bin/hg", line 27, in <module>
mercurial.dispatch.run()
File "/home/scratch/src/hg-crew/mercurial/dispatch.py", line 16, in run
sys.exit(dispatch(sys.argv[1:]))
File "/home/scratch/src/hg-crew/mercurial/dispatch.py", line 25, in dispatch
return _runcatch(u, args)
File "/home/scratch/src/hg-crew/mercurial/dispatch.py", line 41, in _runcatch
return _dispatch(ui, args)
File "/home/scratch/src/hg-crew/mercurial/dispatch.py", line 372, in _dispatch
return runcommand(lui, repo, cmd, fullargs, ui, options, d)
File "/home/scratch/src/hg-crew/mercurial/dispatch.py", line 247, in
runcommand
ret = _runcommand(ui, options, cmd, d)
File "/home/scratch/src/hg-crew/mercurial/dispatch.py", line 417, in
_runcommand
stats = lsprof.Stats(p.getstats())
File "/home/scratch/src/hg-crew/mercurial/dispatch.py", line 377, in checkargs
return cmdfunc()
File "/home/scratch/src/hg-crew/mercurial/dispatch.py", line 371, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
File "/home/scratch/src/hg-crew/mercurial/util.py", line 718, in check
the following properties of a path are checked:
File "/home/scratch/src/hg-crew/hgext/rebase.py", line 131, in rebase
- util.set(state.keys())):
File "/home/scratch/src/hg-crew/mercurial/repair.py", line 127, in strip
cl.strip(striprev, tr)
TypeError: strip() takes exactly 2 arguments (3 given)
Could this be related to the recent transactional changes to strip?
Or am I playing with fire by running the same hg that I am currently
modifying?
Oh yeah, I saved a bundle of this repository in its pre-crash state to
http://www.gerg.ca/hg-crew-rebase-crash.bundle . If you want to
reproduce it, here's what worked for me:
$ wget http://www.gerg.ca/hg-crew-rebase-crash.bundle
$ hg init hg-crew-rebase-crash
$ cd hg-crew-rebase-crash
$ hg unbundle ../hg-crew-rebase-crash.bundle
$ hg heads
[...verify heads are 8084 and 8083 as shown above...]
$ hg up 8084
$ make local
[...build noise...]
$ ./hg rebase -d 8083
[crash]
If I skip building the local copy and just use /usr/bin/hg (which is
1.1.2 in this case), rebase works fine.
Should I file a bug? Or are my working habits wrong?
Thanks --
Greg
More information about the Mercurial-devel
mailing list