py3 and Ubuntu 20.04 : Shelve feature doesn't work
Created originally on Bitbucket by Robert Tran
Hello,
I encountered this problem when using the shelve feature. Thank you for looking into it.
When I do one of the following, this error popped up:
- create a new shelf
- move changed files to the default shelf
Once the error occurred, the same error popped up whenever I selected Repository->Shelve. It no longer takes me to the Shelve window. The error stays until I removed the shelf file under .hg/shelves/2020-03-13_14-18-37_parent_rev_1231
(example). After I removed the file, I can click on Shelve and get the Shelve window again but as soon as I create a new shelf or move files to the default shelf, the error comes back again.
#!python
** Mercurial version (5.3.2). TortoiseHg version (5.3.2)
** Command:
** CWD: /home/rtran
** Encoding: UTF-8
** Extensions loaded: amend, fetch, hgk, histedit, purge, rebase, strip, tortoisehg.util.configitems
** Python version: 3.8.2 (default, Apr 27 2020, 15:53:34) [GCC 9.3.0]
** System: Linux denali 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64
** Qt-5.12.8 PyQt-5.14.1 QScintilla-2.11.2
Traceback (most recent call last):
File "/usr/local/tortoisehg/tortoisehg/hgqt/workbench.py", line 862, in forwarder
getattr(w, name)(*params, **namedparams)
File "/usr/local/tortoisehg/tortoisehg/hgqt/repowidget.py", line 757, in shelve
self._dialogs.open(RepoWidget._createShelveDialog)
File "/usr/local/tortoisehg/tortoisehg/hgqt/qtlib.py", line 1256, in open
dlg = self._preparedlg(self._genkey(self.parent(), *args, **kwargs),
File "/usr/local/tortoisehg/tortoisehg/hgqt/qtlib.py", line 1277, in _preparedlg
return self._populatedlg(key, args, kwargs)
File "/usr/local/tortoisehg/tortoisehg/hgqt/qtlib.py", line 1280, in _populatedlg
dlg = self._createdlg(self.parent(), *args, **kwargs)
File "/usr/local/tortoisehg/tortoisehg/hgqt/repowidget.py", line 171, in <lambda>
lambda self, dlgmeth, *args: dlgmeth(self, *args), parent=self)
File "/usr/local/tortoisehg/tortoisehg/hgqt/repowidget.py", line 760, in _createShelveDialog
dlg = shelve.ShelveDialog(self._repoagent)
File "/usr/local/tortoisehg/tortoisehg/hgqt/shelve.py", line 218, in __init__
self.refreshCombos()
File "/usr/local/tortoisehg/tortoisehg/hgqt/shelve.py", line 471, in refreshCombos
self.comboBChanged(idxb)
File "/usr/local/tortoisehg/tortoisehg/hgqt/shelve.py", line 502, in comboBChanged
self.browseb.setContext(self.repo[rev])
File "/usr/local/tortoisehg/tortoisehg/hgqt/thgrepo.py", line 812, in __getitem__
changectx = super(thgrepository, self).__getitem__(changeid)
File "/home/rtran/.local/lib/python3.8/site-packages/mercurial/localrepo.py", line 1641, in __getitem__
raise error.ProgrammingError(
mercurial.error.ProgrammingError: unsupported changeid '/home/rtran/Development/<MyProject>/.hg/shelves/2020-03-13_14-18-37_parent_rev_1231' of type <class 'bytes'>