Issue #2252 resolved

Crash trying to open removed sub repository

Anonymous created an issue

This problem is about sub repositories that were introduced with a certain changeset and then removed again in some later changeset. Mercurial has problems dealing with files that once were tracked by a sub repository and now are tracked by the main repo again. If such files have the same path+name, it is a pain to toggle between changesets with and without a sub - but thas a different problem. To work around this problem, we decided to remove the sub and add the same files to a different folder before (with sub): main.c lib/a_sub after (without) main.c lib/a

When i now clone the main repo, and implicitly update to tip, the folder a_sub isnt there. This is ok because the sub is not present any more in the tip. Now i watch the revision details of an older changeset that still contained the sub and had changes in it. In the changed files list i see the lib/a_sub entry with the sub-repo-icon. When i now click onto this line, mercurial should either complain about the missing folder lib/a_sub or ask to clone the sub repo from remote, but what happens is this:

** Mercurial version (2.3.2).  TortoiseHg version (2.5.1)
** Command: --nofork workbench
** CWD: D:\projects\foo\bar
** Encoding: cp1252
** Extensions loaded: largefiles, convert, mq, purge, rebase, transplant, onsub
** Python version: 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]
** Windows version: sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1')
** Processor architecture: x64
** Qt-4.8.0 PyQt-4.9.1
Traceback (most recent call last):
  File "tortoisehg\hgqt\revdetails.pyo", line 263, in onDoubleClick
  File "tortoisehg\hgqt\filectxactions.pyo", line 310, in opensubrepo
TypeError: arguments did not match any overloaded call:
  QMessageBox.warning(QWidget, QString, QString, QMessageBox.StandardButtons buttons=QMessageBox.Ok, QMessageBox.StandardButton defaultButton=QMessageBox.NoButton): argument 1 has unexpected type 'FilectxActions'
  QMessageBox.warning(QWidget, QString, QString, int, int, int button2=0): argument 1 has unexpected type 'FilectxActions'
  QMessageBox.warning(QWidget, QString, QString, QString, QString button1Text=QString(), QString button2Text=QString(), int defaultButtonNumber=0, int escapeButtonNumber=-1): argument 1 has unexpected type 'FilectxActions'

Comments (2)

  1. Log in to comment