Freezed in the Rebase dialog box

Issue #2483 resolved
created an issue

I'm unable to close Rebase dialog box after performing Rebase command. There are two buttons: Continue and Abort - clicking both buttons will cause brief change of status text from "You may continue the rebase" to "Running...". The only way how to close this dialog box is using Escape with following confirmation: "Confirm Exit / Exiting with an unfinished rebase is not recommended. / Consider aborting the rebase first / Exit / Cancel"

I can reproduce this problem on our repository, unfortunately it is private source code.

Comments (11)

  1. Yuya Nishihara

    Probably rebase --continue or rebase --abort finished unexpectedly.

    Is it reproducible in TortoiseHg 2.7.1 + Mercurial 2.5.1? If so, do you use subrepo or largefiles extension?

  2. janrysavy reporter

    I'm using standard TortoiseHg version 2.7.1 (with Mercurial-2.5.2, Python-2.7.3, PyQt-4.9.6, Qt-4.8.4). It is simple repository - no subrepos, no largefiles extension.

    Please see attached graph.png - trying to rebase rev 2490 to rev 2504.

    I will report this problem to Mercurial bug tracker. Would it be possible to better handle such error in the TortoiseHG Rebase dialog box?

    ** unknown exception encountered, please report by visiting
    ** Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]
    ** Mercurial Distributed SCM (version 2.5.2)
    ** Extensions loaded: rebase
    Traceback (most recent call last):
      File "hg", line 42, in <module>
      File "mercurial\dispatch.pyo", line 28, in run
      File "mercurial\dispatch.pyo", line 65, in dispatch
      File "mercurial\dispatch.pyo", line 88, in _runcatch
      File "mercurial\dispatch.pyo", line 743, in _dispatch
      File "mercurial\dispatch.pyo", line 514, in runcommand
      File "mercurial\dispatch.pyo", line 833, in _runcommand
      File "mercurial\dispatch.pyo", line 804, in checkargs
      File "mercurial\dispatch.pyo", line 740, in <lambda>
      File "mercurial\util.pyo", line 475, in check
      File "hgext\rebase.pyo", line 327, in rebase
      File "hgext\rebase.pyo", line 732, in clearrebased
      File "mercurial\repair.pyo", line 183, in strip
      File "mercurial\localrepo.pyo", line 58, in wrapper
      File "mercurial\localrepo.pyo", line 1426, in destroyed
      File "mercurial\branchmap.pyo", line 75, in updatecache
      File "mercurial\localrepo.pyo", line 634, in branchmap
      File "mercurial\branchmap.pyo", line 80, in updatecache
      File "mercurial\branchmap.pyo", line 192, in update
      File "mercurial\ancestor.pyo", line 230, in __iter__
      File "mercurial\changelog.pyo", line 204, in parentrevs
    IndexError: 2488
  3. Yuya Nishihara

    Thanks for the detail. I guess it is a bug of Mercurial 2.5.x.

    Would it be possible to better handle such error in the TortoiseHG Rebase dialog box?

    It should show error message or exception dialog, but currently it seems not easy.

  4. Yuya Nishihara

    thread: don't erase traceback of unknown exception in CmdThread (refs #2483)

    Our sys.excepthook defined in run.qtrun is thread-safe, so we can pop up BugReport dialog in this case. Also, even if run() raises exception, CmdThread will emit commandFinished and the GUI will notice that the command exited abnormally.

    But, PyQt 4.9.6 (Windows) seems to have the following issue and sys.excepthook cannot be called. This problem does not exist in PyQt 4.10 (Windows) and python-qt4 4.9.3-4 (Debian GNU/Linux).

    → <<cset 2e8bf6578a77>>

  5. Log in to comment