schacon / hg-git

mercurial to git bridge, pushed to directly from the hg-git plugin in Hg
GNU General Public License v2.0
620 stars 72 forks source link

hg push fail: Incorrent length of hexsha: 80037 #304

Open henghamao opened 8 years ago

henghamao commented 8 years ago

When we tried to push hg repo to git, we met the below errors:

* Python 2.7 (r27, May 27 2013, 20:02:53) [GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] * Mercurial Distributed SCM (version 3.5) * Extensions loaded: hggit Traceback (most recent call last): File "/usr/ali/python-2.7/bin/hg", line 5, in pkg_resources.run_script('mercurial==3.5', 'hg') File "/usr/ali/python-2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 489, in run_script File "/usr/ali/python-2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 1207, in run_script File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/EGG-INFO/scripts/hg", line 43, in mercurial.dispatch.run() File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/dispatch.py", line 30, in run sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255) File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/dispatch.py", line 92, in dispatch ret = _runcatch(req) File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/dispatch.py", line 163, in _runcatch return _dispatch(req) File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/dispatch.py", line 895, in _dispatch cmdpats, cmdoptions) File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/dispatch.py", line 656, in runcommand ret = _runcommand(ui, options, cmd, d) File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/dispatch.py", line 1013, in _runcommand return checkargs() File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/dispatch.py", line 982, in checkargs return cmdfunc() File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/dispatch.py", line 892, in d = lambda: util.checksignature(func)(ui, _args, _cmdoptions) File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/util.py", line 792, in check return func(_args, _kwargs) File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x86_64.egg/mercurial/commands.py", line 5286, in push bookmarks=opts.get('bookmark', ())) File "/usr/ali/python-2.7/lib/python2.7/site-packages/mercurial-3.5-py2.7-linux-x8664.egg/mercurial/extensions.py", line 171, in closure return func((args + a), _kw) File "/home/yicong.hyc/hg-git/hggit/util.py", line 48, in inner return f(_args, *_kwargs) File "/home/yicong.hyc/hg-git/hggit/init.py", line 308, in exchangepush pushop.cgresult = repo.githandler.push(remote.path, revs, force) File "/home/yicong.hyc/hg-git/hggit/git_handler.py", line 327, in push self.export_commits() File "/home/yicong.hyc/hg-git/hggit/git_handler.py", line 292, in export_commits self.export_git_objects() File "/home/yicong.hyc/hg-git/hggit/git_handler.py", line 434, in export_git_objects self.export_hg_commit(ctx.node(), exporter) File "/home/yicong.hyc/hg-git/hggit/git_handler.py", line 500, in export_hg_commit if obj.id not in self.git.object_store: File "/usr/ali/python-2.7/lib/python2.7/site-packages/dulwich-0.10.1-py2.7-linux-x86_64.egg/dulwich/objects.py", line 491, in id return self.sha().hexdigest().encode('ascii') File "/usr/ali/python-2.7/lib/python2.7/site-packages/dulwich-0.10.1-py2.7-linux-x86_64.egg/dulwich/objects.py", line 474, in sha new_sha.update(self._header()) File "/usr/ali/python-2.7/lib/python2.7/site-packages/dulwich-0.10.1-py2.7-linux-x86_64.egg/dulwich/objects.py", line 453, in _header return object_header(self.type, self.raw_length()) File "/usr/ali/python-2.7/lib/python2.7/site-packages/dulwich-0.10.1-py2.7-linux-x86_64.egg/dulwich/objects.py", line 458, in raw_length for chunk in self.as_raw_chunks(): File "/usr/ali/python-2.7/lib/python2.7/site-packages/dulwich-0.10.1-py2.7-linux-x86_64.egg/dulwich/objects.py", line 275, in as_raw_chunks self._chunked_text = self._serialize() File "/usr/ali/python-2.7/lib/python2.7/site-packages/dulwich-0.10.1-py2.7-linux-x86_64.egg/dulwich/objects.py", line 939, in _serialize return list(serialize_tree(self.iteritems())) File "/usr/ali/python-2.7/lib/python2.7/site-packages/dulwich-0.10.1-py2.7-linux-x86_64.egg/dulwich/objects.py", line 775, in serialize_tree yield ("%04o" % mode).encode('ascii') + b' ' + name + b'\0' + hex_to_sha(hexsha) File "/usr/ali/python-2.7/lib/python2.7/site-packages/dulwich-0.10.1-py2.7-linux-x86_64.egg/dulwich/objects.py", line 95, in hex_to_sha assert len(hex) == 40, "Incorrent length of hexsha: %s" % hex AssertionError: Incorrent length of hexsha: 80037