1. Augie Fackler
  2. hg-git
  3. Issues
Issue #125 new

Broken pipe pushing to github

Sam Sudar
created an issue

I am trying to push an hg repo to a new repo on github. I get a broken pipe. I've tried various things, including upgrading my dulwich and my hg to no success. The --traceback is below.

I've pushed other repos this way, so I don't believe it is an authentication issue. I've read similar issues about the repo being too big. Does anyone have any ideas? I'd really like to get a git mirror of this going.

hg push -v --traceback git+ssh://git@github.com/srsudar/opendatakit.survey-js.git
pushing to git+ssh://git@github.com/srsudar/opendatakit.survey-js.git
["git-receive-pack '/srsudar/opendatakit.survey-js.git'"]
searching for changes
1065 commits found
adding objects
Traceback (most recent call last):
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/dispatch.py", line 138, in _runcatch
    return _dispatch(req)
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/dispatch.py", line 820, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/dispatch.py", line 600, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/extensions.py", line 196, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/hgext/color.py", line 433, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/dispatch.py", line 911, in _runcommand
    return checkargs()
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/dispatch.py", line 882, in checkargs
    return cmdfunc()
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/dispatch.py", line 817, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/util.py", line 550, in check
    return func(*args, **kwargs)
  File "/usr/local/Cellar/mercurial/3.1.1/lib/python2.7/site-packages/mercurial/commands.py", line 4810, in push
    newbranch=opts.get('new_branch'))
  File "/Library/Python/2.7/site-packages/hg_git-0.6.1-py2.7.egg/hggit/hgrepo.py", line 21, in push
    return self.githandler.push(remote.path, revs, force)
  File "/Library/Python/2.7/site-packages/hg_git-0.6.1-py2.7.egg/hggit/git_handler.py", line 282, in push
    old_refs, new_refs = self.upload_pack(remote, revs, force)
  File "/Library/Python/2.7/site-packages/hg_git-0.6.1-py2.7.egg/hggit/git_handler.py", line 928, in upload_pack
    new_refs = client.send_pack(path, changed, genpack)
  File "/Library/Python/2.7/site-packages/dulwich-0.9.8-py2.7-macosx-10.7-intel.egg/dulwich/client.py", line 490, in send_pack
    entries, sha = write_pack_objects(proto.write_file(), objects)
  File "/Library/Python/2.7/site-packages/dulwich-0.9.8-py2.7-macosx-10.7-intel.egg/dulwich/pack.py", line 1527, in write_pack_objects
    return write_pack_data(f, len(objects), pack_contents)
  File "/Library/Python/2.7/site-packages/dulwich-0.9.8-py2.7-macosx-10.7-intel.egg/dulwich/pack.py", line 1553, in write_pack_data
    crc32 = write_pack_object(f, type_num, raw)
  File "/Library/Python/2.7/site-packages/dulwich-0.9.8-py2.7-macosx-10.7-intel.egg/dulwich/pack.py", line 1440, in write_pack_object
    f.write(data)
  File "/Library/Python/2.7/site-packages/dulwich-0.9.8-py2.7-macosx-10.7-intel.egg/dulwich/pack.py", line 1372, in write
    self.f.write(data)
  File "/Library/Python/2.7/site-packages/dulwich-0.9.8-py2.7-macosx-10.7-intel.egg/dulwich/protocol.py", line 191, in write
    self._proto.write(data)
IOError: [Errno 32] Broken pipe

Comments (6)

  1. Jason R. Coombs

    I've run into this issue I have this problem too, with dulwich 0.10.0a and 0.12.0 pushing new mirrors to Github over HTTPS. If I limit the number of commits included in the payload, I can push successfully, but when I do more than about 25 commits, the push fails with a Broken pipe.

  2. Jason R. Coombs

    I was able to get the commits into Github by using the git command-line client, cloning the git repo in bitbucket, and then pushing that to Github, so whatever was rejecting those commits seems to affect Dulwich only and not the content.

  3. Jason R. Coombs

    Seems that even though the commits made it to Github, I'm still unable to work with the repo. Even with a clean checkout using hg-git and dulwich, I get this error trying to push no changes:

    $ hg push
    pushing to gh://jaraco/jaraco.util
    searching for changes
    abort: git remote error: unpack eof before pack header was fully read
    
  4. Log in to comment