[issue2462] Mq/HistEdit Dies Hard and Leaves Repo in Bad But Recoverable State

Paul bugs at mercurial.selenic.com
Fri Oct 29 08:24:14 UTC 2010


New submission from Paul <classicist at gmail.com>:

Below is the play-by-play of our repo nearly getting hosed. I was trying to
fold revisions 22302:tip into a single changeset using histedit (where I
changed all of the "pick"s to "f" except for 22302). All the changes were
pretty normal (no binary files or anything), except for 22305 which was
*only* a file rename done by hg addremove --similarity 100. Also, it may be
worth noting that after this approach failed I copied the repo, then tried
to use mq to accompish the same thing via qfold. But after I hg qimport -r
22302:tip and hg qpop --all; hg qpush,  hg qfold 22303.diff 22304.diff
22305.diff 22306.diff failed in a pretty epic way as well. After that, I
could not even apply those patches (they all failed qpush, one by one). I am
pretty new to hg and am only mentioning this last bit about mq, in case one
thing depended on another. Anyway my cleaned up bash session went like this:

monster:~/Development/repos$ hg version
Mercurial Distributed SCM (version 1.6.3+20100826)

Copyright (C) 2005-2010 Matt Mackall <mpm at selenic.com> and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

monster:(hg)Current[default: ]$ glog
@  changeset:   22306:78b817a4a2f6
|  tag:         tip
|  user:        commiterA
|  date:        Fri Oct 29 00:57:00 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22305:45c4b2dfb071
|  user:        commiterA
|  date:        Thu Oct 28 23:38:11 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22304:556378e2fdff
|  user:        commiterA
|  date:        Thu Oct 28 23:36:50 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22303:47f6bfab2654
|  user:        commiterA
|  date:        Thu Oct 28 23:05:04 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22302:57ec6a53b4e5
|  user:        commiterA
|  date:        Thu Oct 28 22:26:47 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22301:7570ea0d6ee2
|  tag:         master
|  user:        commiterB
|  date:        Thu Oct 28 19:02:21 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22300:3691d132d177
|  user:        commiterC
|  date:        Thu Oct 28 16:57:52 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
monster:(hg)Current[default: ]$ hg histedit 22302
2 files updated, 0 files merged, 1 files removed, 0 files unresolved       
                                                           
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
abort: Fix up the change and run hg histedit --continue
monster:(hg)Current[default: ]$ hg resolve
abort: no files or directories specified; use --all to remerge all files
monster:(hg)Current[default: ]$ hg resolve --all
monster:(hg)Current[default: ]$ hg histedit --continue
** unknown exception encountered, details follow
** report bug details to http://mercurial.selenic.com/bts/
** or mercurial at selenic.com
** Python 2.5.1 (r251:54863, Feb  6 2009, 19:02:12) [GCC 4.0.1 (Apple Inc.
build 5465)]
** Mercurial Distributed SCM (version 1.6.3+20100826)
** Extensions loaded: pager, bookmarks, children, color, churn, extdiff,
hgk, interhg, progress, purge, rebase, record, transplant, mq, histedit,
graphlog
Traceback (most recent call last):
  File "/usr/local/bin/hg", line 27, in <module>
    mercurial.dispatch.run()
  File "/Library/Python/2.5/site-packages/mercurial/dispatch.py", line 16,
in run
    sys.exit(dispatch(sys.argv[1:]))
  File "/Library/Python/2.5/site-packages/mercurial/dispatch.py", line 34,
in dispatch
    return _runcatch(u, args)
  File "/Library/Python/2.5/site-packages/mercurial/dispatch.py", line 54,
in _runcatch
    return _dispatch(ui, args)
  File "/Library/Python/2.5/site-packages/mercurial/dispatch.py", line 494,
in _dispatch
    cmdpats, cmdoptions)
  File "/Library/Python/2.5/site-packages/mercurial/dispatch.py", line 355,
in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/Library/Python/2.5/site-packages/mercurial/extensions.py", line
174, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/Library/Python/2.5/site-packages/hgext/color.py", line 211, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/Library/Python/2.5/site-packages/mercurial/extensions.py", line
174, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/Library/Python/2.5/site-packages/hgext/pager.py", line 95, in pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/Library/Python/2.5/site-packages/mercurial/dispatch.py", line 545,
in _runcommand
    return checkargs()
  File "/Library/Python/2.5/site-packages/mercurial/dispatch.py", line 499,
in checkargs
    return cmdfunc()
  File "/Library/Python/2.5/site-packages/mercurial/dispatch.py", line 492,
in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/Library/Python/2.5/site-packages/mercurial/util.py", line 420, in check
    return func(*args, **kwargs)
  File "/Library/Python/2.5/site-packages/hgext/histedit/hg_histedit.py",
line 260, in histedit
    new = newchildren[-1]
IndexError: list index out of range
monster:(hg)Current[default: ]$ glgog
-bash: glgog: command not found
monster:(hg)Current[default: ]$ glog
@  changeset:   22308:911252c840f9
|  tag:         tip
|  parent:      22301:7570ea0d6ee2
|  user:        commiterA
|  date:        Thu Oct 28 23:05:04 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
| o  changeset:   22307:7a3b6cdd393d
| |  parent:      22302:57ec6a53b4e5
| |  user:        commiterA
| |  date:        Thu Oct 28 23:05:04 2010 -0600
| |  summary:     [Commit Msg Edited Out For Privacy]
| |
| | o  changeset:   22306:78b817a4a2f6
| | |  user:        commiterA
| | |  date:        Fri Oct 29 00:57:00 2010 -0600
| | |  summary:     [Commit Msg Edited Out For Privacy]
| | |
| | o  changeset:   22305:45c4b2dfb071
| | |  user:        commiterA
| | |  date:        Thu Oct 28 23:38:11 2010 -0600
| | |  summary:     [Commit Msg Edited Out For Privacy]
| | |
| | o  changeset:   22304:556378e2fdff
| | |  user:        commiterA
| | |  date:        Thu Oct 28 23:36:50 2010 -0600
| | |  summary:     [Commit Msg Edited Out For Privacy]
| | |
| | o  changeset:   22303:47f6bfab2654
| |/   user:        commiterA
| |    date:        Thu Oct 28 23:05:04 2010 -0600
| |    summary:     [Commit Msg Edited Out For Privacy]
| |
| o  changeset:   22302:57ec6a53b4e5
|/   user:        commiterA
|    date:        Thu Oct 28 22:26:47 2010 -0600
|    summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22301:7570ea0d6ee2
|  tag:         master
|  user:        commiterB
|  date:        Thu Oct 28 19:02:21 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22300:3691d132d177
|  user:        commiterC
|  date:        Thu Oct 28 16:57:52 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
monster:(hg)Current[default: ]$ hg qimport -r 22302:tip
monster:(hg)Current[default: ]$ hg qapplied
22302.diff
22303.diff
22304.diff
22305.diff
22306.diff
monster:(hg)Current[default: ]$ hg qfold 
abort: qfold requires at least one patch name
monster:(hg)Current[default: ]$ hg qfold 22302.diff 22303.diff 22304.diff
22305.diff
abort: qfold cannot fold already applied patch 22302.diff
monster:(hg)Current[default: ]$ hg qpop
popping 22306.diff
now at: 22305.diff
monster:(hg)Current[default: ]$ hg qpop --all
popping 22305.diff
popping 22304.diff
popping 22303.diff
popping 22302.diff
patch queue now empty
monster:(hg)Current[default: ]$ hg qfold 22302.diff 22303.diff 22304.diff
22305.diff
abort: No patches applied
monster:(hg)Current[default: ]$ hg qpush
applying 22302.diff
now at: 22302.diff
monster:(hg)Current[default: ]$ hg qfold 22303.diff 22304.diff 22305.diff
22306.diff
patching file path/to/file/theChangedFileName.whatever
Hunk #1 FAILED at 0
1 out of 6 hunks FAILED -- saving rejects to file
path/to/file/theChangedFileName.whatever.rej
patch failed, unable to continue (try -v)
abort: Error folding patch 22303.diff
monster:(hg)Current[default: ]$ glog
@  changeset:   22302:9f442d082d02
|  tag:         22302.diff
|  tag:         qbase
|  tag:         qtip
|  tag:         tip
|  user:        commiterA
|  date:        Thu Oct 28 22:26:47 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22301:7570ea0d6ee2
|  tag:         master
|  tag:         qparent
|  user:        commiterB
|  date:        Thu Oct 28 19:02:21 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22300:3691d132d177
|  user:        commiterC
|  date:        Thu Oct 28 16:57:52 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22299:c558c3e46f92
|  user:        commiterC
|  date:        Thu Oct 28 16:57:32 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22298:11f5ba8a6346
|  user:        jparrent
|  date:        Thu Oct 28 16:48:08 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22297:335723178fdc
|  user:        commiterC
|  date:        Thu Oct 28 16:09:49 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
monster:(hg)Current[default: ]$ hg qapplied
22302.diff
monster:(hg)Current[default: ]$ hg qunapplied
22303.diff
22304.diff
22305.diff
22306.diff
monster:(hg)Current[default: ]$ hg qpush
abort: local changes found, refresh first
monster:(hg)Current[default: ]$ st
M path/to/file/theChangedFileName.whatever
monster:(hg)Current[default: ]$ hdiff
monster:(hg)Current[default: ]$ hg qpop
abort: local changes found, refresh first
monster:(hg)Current[default: ]$ hg up -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
monster:(hg)Current[default: ]$ hg qpop
popping 22302.diff
patch queue now empty
monster:(hg)Current[default: ]$ hg qunapplied
22302.diff
22303.diff
22304.diff
22305.diff
22306.diff
monster:(hg)Current[default: ]$ hg qpush
applying 22302.diff
now at: 22302.diff
monster:(hg)Current[default: ]$ hg qpush
applying 22303.diff
patching file path/to/file/theChangedFileName.whatever
Hunk #1 FAILED at 0
1 out of 6 hunks FAILED -- saving rejects to file
path/to/file/theChangedFileName.whatever.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh 22303.diff
monster:(hg)Current[default: ]$ mate
path/to/file/theChangedFileName.whatever.rej
monster:(hg)Current[default: ]$ hg up -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
monster:(hg)Current[default: ]$ st
monster:(hg)Current[default: ]$ hg qapplied
22302.diff
22303.diff
monster:(hg)Current[default: ]$ hg qpush
applying 22304.diff
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh 22304.diff
monster:(hg)Current[default: ]$ hg st
monster:(hg)Current[default: ]$ st
monster:(hg)Current[default: ]$ hg qapplied
22302.diff
22303.diff
22304.diff
monster:(hg)Current[default: ]$ hg qpush
applying 22305.diff
now at: 22305.diff
monster:(hg)Current[default: ]$ hg qpush
applying 22306.diff
patching file path/to/file/AnotherChangedFileName.whatever
Hunk #1 FAILED at 1
Hunk #3 FAILED at 27
Hunk #4 FAILED at 36
Hunk #5 FAILED at 57
Hunk #7 FAILED at 122
Hunk #8 succeeded at 142 with fuzz 2 (offset -2 lines).
Hunk #9 succeeded at 151 with fuzz 1 (offset -2 lines).
5 out of 11 hunks FAILED -- saving rejects to file
path/to/file/AnotherChangedFileName.whatever.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh 22306.diff
monster:(hg)Current[default: ]$ mate
path/to/file/AnotherChangedFileName.whatever.rej
monster:(hg)Current[default: ]$ hg merge
monster:(hg)Current[default: ]$ hg resolve
abort: no files or directories specified; use --all to remerge all files
monster:(hg)Current[default: ]$ hg resolve --all
monster:(hg)Current[default: ]$ st
monster:(hg)Current[default: ]$ hg qapplied
22302.diff
22303.diff
22304.diff
22305.diff
22306.diff
monster:(hg)Current[default: ]$ st
M path/to/file/AnotherChangedFileName.whatever
monster:(hg)Current[default: ]$ glog
@  changeset:   22306:d2df19c7d707
|  tag:         22306.diff
|  tag:         qtip
|  tag:         tip
|  user:        commiterA
|  date:        Fri Oct 29 00:57:00 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22305:61b6ab4b6087
|  tag:         22305.diff
|  user:        commiterA
|  date:        Thu Oct 28 23:38:11 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22304:e68a00ba0493
|  tag:         22304.diff
|  user:        commiterA
|  date:        Thu Oct 28 23:36:50 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22303:cbf3437574a0
|  tag:         22303.diff
|  user:        commiterA
|  date:        Thu Oct 28 23:05:04 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22302:9f442d082d02
|  tag:         22302.diff
|  tag:         qbase
|  user:        commiterA
|  date:        Thu Oct 28 22:26:47 2010 -0600
|  summary:     [Commit Msg Edited Out For Privacy]
|
o  changeset:   22301:7570ea0d6ee2
|  tag:         master
|  tag:         qparent
monster:(hg)Current[default: ]$ ..
monster:~/Development/repos$ ls
Current        Current_backup Maint_2010_C5
monster:~/Development/repos$ mv Current Current_foobared

----------
messages: 14224
nosy: classicist
priority: urgent
status: unread
title: Mq/HistEdit Dies Hard and Leaves Repo in Bad But Recoverable State
topic: 1.6.4, mq

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue2462>
____________________________________________________


More information about the Mercurial-devel mailing list