crashed when accepting pull

Anonymous avatarAnonymous created an issue
** Mercurial version (1.8.1).  TortoiseHg version (2.0.2)
** Command: --nofork workbench
** CWD: C:\coding\projects\wmRep2011
** Extensions loaded: fixfrozenexts
** Python version: 2.6.6 (r266:84297, Aug 24 2010, 18:13:38) [MSC v.1500 64 bit (AMD64)]
** Windows version: (6, 1, 7600, 2, '')
** Processor architecture: x64
** Qt-4.7.1 PyQt-4.8.2
Traceback (most recent call last):
  File "tortoisehg\hgqt\repowidget.pyo", line 849, in viewMenuRequest
  File "tortoisehg\hgqt\repowidget.pyo", line 856, in singleSelectionMenu
  File "tortoisehg\hgqt\thgrepo.pyo", line 246, in changectx
  File "mercurial\localrepo.pyo", line 576, in changectx
  File "mercurial\localrepo.pyo", line 206, in __getitem__
  File "mercurial\context.pyo", line 25, in __init__
  File "mercurial\revlog.pyo", line 312, in node
IndexError: list index out of range

Comments (5)

  1. Steve Borho

    I think I understand how this occurs, but fixing it will be a bit tricky.

    In a nutshell; we drop the bundlerepo that includes the preview revisions when we start the pull from the bundle. This pull happens in a background thread and while it's running there's a window where any clicks on the incoming revisions will raise an IndexError. Once the pull is complete we're safe again.

    To fix this we need to defer the dropping of the bundlerepo until the pull is complete.

  2. Steve Borho

    repowidget: delay bundlerepo clearing until after pull (fixes #469)

    I believe this performs a more accurate revset refresh after doing a partial pull from a bundle; since the revision numbers may change after the pull.


  3. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.