Thg 4.5 Cannot pull from SVN repos

Issue #5037 open
Krzysiek Karbowiak
created an issue

I have just updated THG to 4.5 and am using it on a 64-bit Windows 10. After the update, I can no longer pull from SVN repositories, which worked fine on previous version. Pulling from Hg and Git repos still works fine.

When I pull, I see a long message (see below) that suggests svnbindings extension might be stale. However, it seems I am still able to push to the SVN repository.

Is an update of svnbindings needed? Where do I find the current version?

The error message:

% hg pull --verbose svn+http:// [snipped]
pulling from svn+http:// [snipped]
[r91739] [snipped]
M trunk/ [snipped]
committing files:
[snipped]
** Unknown exception encountered with possibly-broken third-party extension svnbindings
** which supports versions unknown of Mercurial.
** Please disable svnbindings and try your action again.
** If that fixes the bug please report it to the extension author.
** Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)]
** Mercurial Distributed SCM (version 4.5)
** Extensions loaded: hgsubversion, strip, mq, rebase, shelve, svnbindings, hggit, blackbox, tortoisehg.util.hgcommands, tortoisehg.util.partialcommit, tortoisehg.util.pipeui, tortoisehg.util.win32ill, tortoisehg.util.hgdispatch
** Unknown exception encountered with possibly-broken third-party extension svnbindings
** which supports versions unknown of Mercurial.
** Please disable svnbindings and try your action again.
** If that fixes the bug please report it to the extension author.
** Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)]
** Mercurial Distributed SCM (version 4.5)
** Extensions loaded: hgsubversion, strip, mq, rebase, shelve, svnbindings, hggit, blackbox, tortoisehg.util.hgcommands, tortoisehg.util.partialcommit, tortoisehg.util.pipeui, tortoisehg.util.win32ill, tortoisehg.util.hgdispatch
Traceback (most recent call last):
  File "hg", line 61, in <module>
  File "mercurial\dispatch.pyo", line 88, in run
  File "mercurial\dispatch.pyo", line 183, in dispatch
  File "mercurial\dispatch.pyo", line 324, in _runcatch
  File "mercurial\dispatch.pyo", line 332, in _callcatch
  File "mercurial\scmutil.pyo", line 154, in callcatch
  File "mercurial\dispatch.pyo", line 314, in _runcatchfunc
  File "mercurial\dispatch.pyo", line 918, in _dispatch
  File "mercurial\dispatch.pyo", line 673, in runcommand
  File "mercurial\dispatch.pyo", line 926, in _runcommand
  File "mercurial\dispatch.pyo", line 915, in <lambda>
  File "mercurial\util.pyo", line 1195, in check
  File "mercurial\util.pyo", line 1195, in check
  File "hgext\mq.pyo", line 3583, in mqcommand
  File "mercurial\util.pyo", line 1195, in check
  File "mercurial\commands.pyo", line 4763, in serve
  File "mercurial\server.pyo", line 107, in runservice
  File "mercurial\commandserver.pyo", line 339, in run
  File "mercurial\commandserver.pyo", line 292, in serve
  File "mercurial\commandserver.pyo", line 267, in serveone
  File "mercurial\commandserver.pyo", line 251, in runcommand
  File "mercurial\dispatch.pyo", line 183, in dispatch
  File "mercurial\dispatch.pyo", line 324, in _runcatch
  File "mercurial\dispatch.pyo", line 332, in _callcatch
  File "mercurial\scmutil.pyo", line 154, in callcatch
  File "mercurial\dispatch.pyo", line 314, in _runcatchfunc
  File "tortoisehg\util\hgdispatch.pyo", line 23, in _dispatch
  File "mercurial\dispatch.pyo", line 918, in _dispatch
  File "mercurial\dispatch.pyo", line 673, in runcommand
  File "mercurial\dispatch.pyo", line 926, in _runcommand
  File "mercurial\dispatch.pyo", line 915, in <lambda>
  File "mercurial\util.pyo", line 1195, in check
  File "mercurial\util.pyo", line 1195, in check
  File "hgext\mq.pyo", line 3583, in mqcommand
  File "mercurial\util.pyo", line 1195, in check
  File "mercurial\util.pyo", line 1195, in check
  File "hgsubversion\wrappers.pyo", line 720, in generic
  File "mercurial\util.pyo", line 1195, in check
  File "mercurial\util.pyo", line 1195, in check
  File "hgext\rebase.pyo", line 1772, in pullrebase
  File "mercurial\util.pyo", line 1195, in check
  File "mercurial\commands.pyo", line 4037, in pull
  File "hgsubversion\wrappers.pyo", line 556, in exchangepull
  File "hgsubversion\wrappers.pyo", line 498, in pull
  File "hgsubversion\replay.pyo", line 57, in convert_rev
  File "hgsubversion\replay.pyo", line 195, in _convert_rev
  File "hgsubversion\svnrepo.pyo", line 96, in svn_commitctx
  File "mercurial\localrepo.pyo", line 142, in wrapper
  File "mercurial\localrepo.pyo", line 1950, in commitctx
  File "mercurial\localrepo.pyo", line 1702, in _filecommit
  File "mercurial\localrepo.pyo", line 1022, in file
  File "mercurial\filelog.pyo", line 45, in __init__
  File "mercurial\revlog.pyo", line 624, in __init__
  File "mercurial\store.pyo", line 492, in __call__
ValueError: string too long
cmdserver: process exited unexpectedly with code 255

Comments (4)

  1. Andrew

    I tested the following using the manual hg CLI. I was facing a similar issue cloning repositories that reference svn repositories as subrepositories. When using hg 4.5 (with the version of hgsubversion bundled with TortoiseHg), I was unable to clone, receiving the following traceback:

    Traceback (most recent call last):
      File "hg", line 61, in <module>
      File "mercurial\dispatch.pyo", line 88, in run
      File "mercurial\dispatch.pyo", line 183, in dispatch
      File "mercurial\dispatch.pyo", line 324, in _runcatch
      File "mercurial\dispatch.pyo", line 332, in _callcatch
      File "mercurial\scmutil.pyo", line 154, in callcatch
      File "mercurial\dispatch.pyo", line 314, in _runcatchfunc
      File "mercurial\dispatch.pyo", line 918, in _dispatch
      File "mercurial\dispatch.pyo", line 673, in runcommand
      File "mercurial\dispatch.pyo", line 926, in _runcommand
      File "mercurial\dispatch.pyo", line 915, in <lambda>
      File "mercurial\util.pyo", line 1195, in check
      File "mercurial\util.pyo", line 1195, in check
      File "hgext\mq.pyo", line 3583, in mqcommand
      File "mercurial\util.pyo", line 1195, in check
      File "mercurial\commands.pyo", line 4763, in serve
      File "mercurial\server.pyo", line 107, in runservice
      File "mercurial\commandserver.pyo", line 339, in run
      File "mercurial\commandserver.pyo", line 292, in serve
      File "mercurial\commandserver.pyo", line 267, in serveone
      File "mercurial\commandserver.pyo", line 251, in runcommand
      File "mercurial\dispatch.pyo", line 183, in dispatch
      File "mercurial\dispatch.pyo", line 324, in _runcatch
      File "mercurial\dispatch.pyo", line 332, in _callcatch
      File "mercurial\scmutil.pyo", line 154, in callcatch
      File "mercurial\dispatch.pyo", line 314, in _runcatchfunc
      File "tortoisehg\util\hgdispatch.pyo", line 23, in _dispatch
      File "mercurial\dispatch.pyo", line 918, in _dispatch
      File "mercurial\dispatch.pyo", line 673, in runcommand
      File "mercurial\dispatch.pyo", line 926, in _runcommand
      File "mercurial\dispatch.pyo", line 915, in <lambda>
      File "mercurial\util.pyo", line 1195, in check
      File "mercurial\util.pyo", line 1195, in check
      File "hgsubversion\wrappers.pyo", line 676, in clone
      File "mercurial\util.pyo", line 1195, in check
      File "mercurial\commands.pyo", line 1449, in clone
      File "hgsubversion\wrappers.pyo", line 663, in hgclonewrapper
      File "mercurial\hg.pyo", line 716, in clone
      File "mercurial\hg.pyo", line 745, in update
      File "mercurial\hg.pyo", line 741, in updaterepo
      File "mercurial\merge.pyo", line 2013, in update
      File "mercurial\merge.pyo", line 1498, in applyupdates
      File "mercurial\subrepo.pyo", line 278, in submerge
      File "mercurial\subrepo.pyo", line 70, in decoratedmethod
      File "mercurial\subrepo.pyo", line 1013, in get
      File "mercurial\subrepo.pyo", line 997, in _get
      File "hgsubversion\wrappers.pyo", line 663, in hgclonewrapper
      File "mercurial\hg.pyo", line 661, in clone
      File "hgsubversion\wrappers.pyo", line 556, in exchangepull
      File "hgsubversion\wrappers.pyo", line 498, in pull
      File "hgsubversion\replay.pyo", line 57, in convert_rev
      File "hgsubversion\replay.pyo", line 195, in _convert_rev
      File "hgsubversion\svnrepo.pyo", line 96, in svn_commitctx
      File "mercurial\localrepo.pyo", line 142, in wrapper
      File "mercurial\localrepo.pyo", line 1950, in commitctx
      File "mercurial\localrepo.pyo", line 1765, in _filecommit
      File "mercurial\filelog.pyo", line 90, in cmp
    AttributeError: 'bool' object has no attribute 'startswith'
    cmdserver: process exited unexpectedly with code 255
    

    But when I manually downloaded the latest hgsubversion repo (https://bitbucket.org/durin42/hgsubversion) @ rev 67b28d657f62, and redirected mercurial to use the tip via the mercurial.ini file, I was able to successfully clone. My guess is that TortoiseHg just isn't including the latest/correct version of hgsubversion in 4.5? It doesn't seem to be impacted by the TortoiseHg GUI.

  2. Log in to comment