← Back to team overview

dulwich-users team mailing list archive

Re: ValueError: invalid literal for int() with base 16: 'logi'

 

On Wed, Jan 1, 2014 at 7:31 PM, anatoly techtonik <techtonik@xxxxxxxxx> wrote:
> On Thu, Dec 19, 2013 at 2:11 AM, Jelmer Vernooij <jelmer@xxxxxxxxx> wrote:
>> On Wed, Dec 18, 2013 at 10:19:33PM +0300, anatoly techtonik wrote:
>>> On Wed, Dec 18, 2013 at 7:12 PM, Jelmer Vernooij <jelmer@xxxxxxxxx> wrote:
>>> > On Wed, Dec 18, 2013 at 05:38:56PM +0300, anatoly techtonik wrote:
>>> >> On Wed, Dec 18, 2013 at 3:24 PM, Jelmer Vernooij <jelmer@xxxxxxxxx> wrote:
>>> >> > On Wed, Dec 18, 2013 at 02:36:54PM +0300, anatoly techtonik wrote:
>>> >> >> I try to clone my repository from GitHub with hg-git and it fails.
>>> >> >> Dulwich 1.9.4, Hg-Git 0.5.0, Windows.
>>> >> >> Please, CC.
>>> >> >>
>>> >> >> destination directory: recordscreen
>>> >> >> ["git-upload-pack '/techtonik/recordscreen'"]
>>> >> >> ** Unknown exception encountered with possibly-broken third-party
>>> >> >> extension hggit
>>> >> >> ** which supports versions 2.2.3 of Mercurial.
>>> >> >> ** Please disable hggit and try your action again.
>>> >> >> ** If that fixes the bug please report it to
>>> >> >> https://bitbucket.org/durin42/hg-git/issues
>>> >> >> ** Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)]
>>> >> >> ** Mercurial Distributed SCM (version 2.8)
>>> >> >> ** Extensions loaded: churn, color, convert, evolve, hggit, strip, mq,
>>> >> >> rebase, record
>>> >> >> Traceback (most recent call last):
>>> >> >>   File "hg", line 38, in <module>
>>> >> >>   File "mercurial\dispatch.pyc", line 28, in run
>>> >> >>   File "mercurial\dispatch.pyc", line 69, in dispatch
>>> >> >>   File "mercurial\dispatch.pyc", line 133, in _runcatch
>>> >> >>   File "mercurial\dispatch.pyc", line 806, in _dispatch
>>> >> >>   File "mercurial\dispatch.pyc", line 585, in runcommand
>>> >> >>   File "mercurial\extensions.pyc", line 196, in wrap
>>> >> >>   File "hgext\color.pyc", line 419, in colorcmd
>>> >> >>   File "mercurial\dispatch.pyc", line 897, in _runcommand
>>> >> >>   File "mercurial\dispatch.pyc", line 868, in checkargs
>>> >> >>   File "mercurial\dispatch.pyc", line 803, in <lambda>
>>> >> >>   File "mercurial\util.pyc", line 512, in check
>>> >> >>   File "mercurial\commands.pyc", line 1282, in clone
>>> >> >>   File "mercurial\hg.pyc", line 372, in clone
>>> >> >>   File "mercurial\localrepo.pyc", line 2431, in clone
>>> >> >>   File "C:\hg-git\hggit\hgrepo.py", line 14, in pull
>>> >> >>     return git.fetch(remote.path, heads)
>>> >> >>   File "C:\hg-git\hggit\git_handler.py", line 205, in fetch
>>> >> >>     refs = self.fetch_pack(remote, heads)
>>> >> >>   File "C:\hg-git\hggit\git_handler.py", line 1016, in fetch_pack
>>> >> >>     ret = client.fetch_pack(path, determine_wants, graphwalker,
>>> >> >> f.write, progress.progress)
>>> >> >>   File "dulwich\client.pyc", line 527, in fetch_pack
>>> >> >>   File "dulwich\client.pyc", line 144, in read_pkt_refs
>>> >> >>   File "dulwich\protocol.pyc", line 147, in read_pkt_seq
>>> >> >>   File "dulwich\protocol.pyc", line 104, in read_pkt_line
>>> >> >> ValueError: invalid literal for int() with base 16: 'logi'
>>> >> >
>>> >> > Can you reproduce it with dulwich clone (without hg-git)? Is there an easy way
>>> >> > for us to reproduce this?
>>> >> No. I can't reproduce this error with "dulwich clone".
>>> > Can you try patching hg-git so it uses LocalGitClient rather than
>>> > SubprocessGitClient? Does that fix the issue?
>>>
>>> Patched as:
>>> diff -r 24b80a953f06 hggit/git_handler.py
>>> --- a/hggit/git_handler.py Sun Dec 15 15:25:31 2013 -0500
>>> +++ b/hggit/git_handler.py Wed Dec 18 22:10:41 2013 +0300
>>> @@ -1379,4 +1379,4 @@
>>>                  return client.HttpGitClient(uri, thin_packs=False), uri
>>>
>>>          # if its not git or git+ssh, try a local url..
>>> -        return client.SubprocessGitClient(thin_packs=False), uri
>>> +        return client.LocalGitClient(thin_packs=False), uri
>>>
>>>
>> This doesn't actually appear to be the codepath that hg-git is using.
>> LocalGitClient doesn't use a protocol at all, so you shouldn't be
>> seeing read_pkt_line in the backtrace if it's using LocalGitClient
>> rather than SubprocessGitClient.
>
> Patched with:
>
> diff -r 24b80a953f06 hggit/git_handler.py
> --- a/hggit/git_handler.py Sun Dec 15 15:25:31 2013 -0500
> +++ b/hggit/git_handler.py Wed Jan 01 19:27:39 2014 +0300
> @@ -1365,6 +1365,8 @@
>              if port:
>                  client.port = port
>
> +            transport = client.LocalGitClient
> +            return transport(thin_packs=False), path
>              return transport(host, thin_packs=False, port=port), path
>
>          httpclient = getattr(client, 'HttpGitClient', None)
>
> Traceback:
>
> ...
>   File "mercurial\dispatch.pyc", line 868, in checkargs
>   File "mercurial\dispatch.pyc", line 803, in <lambda>
>   File "mercurial\util.pyc", line 512, in check
>   File "mercurial\commands.pyc", line 1286, in clone
>   File "mercurial\hg.pyc", line 372, in clone
>   File "mercurial\localrepo.pyc", line 2431, in clone
>   File "C:\hg-git\hggit\hgrepo.py", line 14, in pull
>     return git.fetch(remote.path, heads)
>   File "C:\hg-git\hggit\git_handler.py", line 205, in fetch
>     refs = self.fetch_pack(remote, heads)
>   File "C:\hg-git\hggit\git_handler.py", line 1016, in fetch_pack
>     ret = client.fetch_pack(path, determine_wants, graphwalker,
> f.write, progress.progress)
>   File "dulwich\client.pyc", line 700, in fetch_pack
> NotImplementedError: <bound method LocalGitClient.fetch_pack of
> <dulwich.client.LocalGitClient object at 0x02765FD0>>

Used latest dulwuch HEAD instead of 0.9.4:
...
  File "mercurial\hg.pyc", line 372, in clone
  File "mercurial\localrepo.pyc", line 2431, in clone
  File "C:\Users\anatoli\Local
Settings\Bin\hgext\hg-git\hggit\hgrepo.py", line 14, in pull
    return git.fetch(remote.path, heads)
  File "C:\Users\anatoli\Local
Settings\Bin\hgext\hg-git\hggit\git_handler.py", line 205, in fetch
    refs = self.fetch_pack(remote, heads)
  File "C:\Users\anatoli\Local
Settings\Bin\hgext\hg-git\hggit\git_handler.py", line 1016, in
fetch_pack
    ret = client.fetch_pack(path, determine_wants, graphwalker,
f.write, progress.progress)
  File "C:\Program Files\Dev\Mercurial\library.zip\dulwich\client.py",
line 702, in fetch_pack
  File "C:\Program Files\Dev\Mercurial\library.zip\dulwich\repo.py",
line 627, in __init__
dulwich.errors.NotGitRepository: No git repository was found at
/techtonik/recordscreen

Seems logical. The logi problem didn't resolved either.

When I put repository cloned with git at /techtonik/recordscreen,
cloning works ok.


References