Crash (THg 6.3.2) when attempting to push to an empty Git repo with preexisting hggit state
I observe the following crash when attempting to push to an empty (I confirmed that with Git, to be 100% sure!) Git repo using the hg.exe
bundled with TortoiseHg 6.3.2.
hg push sourceforge.git
pushing to git+ssh://assarbad@git.code.sf.net/p/windirstat/git-clone
searching for changes
** unknown exception encountered, please report by visiting
** https://mercurial-scm.org/wiki/BugTracker
** Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)]
** Mercurial Distributed SCM (version 6.3.2)
** Extensions loaded: evolve 10.5.4.dev, hggit 1.0.1 (dulwich 0.20.46), histedit, mq, rebase, strip, topic 0.24.3.dev, transplant
Traceback (most recent call last):
File "hg", line 58, in <module>
File "mercurial\dispatch.pyc", line 143, in run
File "mercurial\dispatch.pyc", line 232, in dispatch
File "mercurial\dispatch.pyc", line 276, in _rundispatch
File "mercurial\dispatch.pyc", line 451, in _runcatch
File "mercurial\dispatch.pyc", line 461, in _callcatch
File "mercurial\scmutil.pyc", line 153, in callcatch
File "mercurial\dispatch.pyc", line 441, in _runcatchfunc
File "mercurial\dispatch.pyc", line 1265, in _dispatch
File "mercurial\dispatch.pyc", line 899, in runcommand
File "mercurial\dispatch.pyc", line 1277, in _runcommand
File "mercurial\dispatch.pyc", line 1263, in <lambda>
File "mercurial\util.pyc", line 1880, in check
File "mercurial\util.pyc", line 1880, in check
File "hgext\mq.pyc", line 4226, in mqcommand
File "mercurial\util.pyc", line 1880, in check
File "mercurial\util.pyc", line 1880, in check
File "hgext3rd\topic\__init__.pyc", line 1357, in pushoutgoingwrap
File "mercurial\util.pyc", line 1880, in check
File "mercurial\util.pyc", line 1880, in check
File "hgext3rd\topic\flow.pyc", line 94, in wrappush
File "mercurial\util.pyc", line 1880, in check
File "mercurial\commands.pyc", line 5820, in push
File "hggit\util.pyc", line 95, in inner
File "hggit\gitrepo.pyc", line 228, in exchangepush
File "hggit\git_handler.pyc", line 483, in push
File "hggit\git_handler.pyc", line 1404, in upload_pack
File "hggit\git_handler.pyc", line 1577, in _call_client
File "dulwich\client.pyc", line 1106, in send_pack
File "hggit\git_handler.pyc", line 1381, in genpack
File "dulwich\object_store.pyc", line 144, in __getitem__
File "dulwich\object_store.pyc", line 596, in get_raw
KeyError: b'73626b74ef756666d6570a3361795eca5a53f0f1'
Please note that I am unable to find 73626b74ef756666d6570a3361795eca5a53f0f1
in the preexisting .hg/git-mapfile
.
The output of hg debuginstall
, only my email address redacted:
> hg debuginstall
checking encoding (cp1252)...
checking Python executable (C:\Program Files\TortoiseHg\hg.exe)
checking Python implementation (CPython)
checking Python version (3.9.13)
checking Python lib (C:\Program Files\TortoiseHg\lib\library.zip)...
checking Python security support (sni,tls1.0,tls1.1,tls1.2)
checking Rust extensions (missing)
checking Mercurial version (6.3.2)
checking Mercurial custom build ()
checking module policy (allow)
checking installed modules (C:\Program Files\TortoiseHg\lib\library.zip\mercurial)...
checking registered compression engines (bz2, bz2truncated, none, zlib, zstd)
checking available compression engines (bz2, bz2truncated, none, zlib, zstd)
checking available compression engines for wire protocol (zstd, zlib, bz2, none)
checking "re2" regexp engine (missing)
checking templates (C:\Program Files\TortoiseHg\templates)...
checking default template (C:\Program Files\TortoiseHg\templates\map-cmdline.default)
checking commit editor... (notepad)
checking username (Oliver Schneider <xx@yy.zz>)
no problems detected
I see this issue both from the command line and from within the TortoiseHg Workbench.
Is there anything I could do in an attempt to get more details to you? E.g. can I somehow unpack the enclosed library.zip
and make it into a "site directory" for the Python 3.9 version that ships with TortoiseHg 6.3.2? Is there a way to invoke the shipped Python and tell it to install a more recent version of hggit
and friends in the per-user path, or does this require installing Python 3.9 and abusing that to do it? This way I could report it better to the dulwich
or hggit
project by first confirming if the issue has been resolved.
Thanks for any insights you can provide that help me to give you more useful information.
PS: Pushing to preexisting remote Git repos works flawlessly.