Push Broken in 0.8.13 -- Bump Version Number
Environment:
- Linux (Gentoo)
- hg-git-0.8.13
- dulwich-0.9.15
- python-2.7
- mercurial-5.3.2 (python 2.7)
Repro Steps:
- hg clone {some repository}
- touch foobar; hg add foobar; hg commit -m "FooBar!"
- hg push
- Error:
TypeError: 'status' object has no attribute '__getitem__'
It looks like this has already been fixed in master with the following:
status = self._hg.status(self._ctx, newctx)
modified, added, removed = (
status.modified,
status.added,
status.removed,
)
However, as far as I can tell the latest release (0.8.13) is broken for some basic push scenarios.
Since the latest release doesn't work... Should there be a version bump to 0.8.13-r1 or 0.8.14?
Full Callstack:
** Unknown exception encountered with possibly-broken third-party extension hggit
** which supports versions 5.2 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.18 (default, Apr 27 2020, 22:20:07) [GCC 9.3.0]
** Mercurial Distributed SCM (version 5.3.2)
** Extensions loaded: convert, extdiff, hggit, histedit, strip, mq, purge, rebase, uncommit
Traceback (most recent call last):
File "/usr/lib/python-exec/python2.7/hg", line 43, in <module>
dispatch.run()
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 111, in run
status = dispatch(req)
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 254, in dispatch
ret = _runcatch(req) or 0
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 428, in _runcatch
return _callcatch(ui, _runcatchfunc)
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 437, in _callcatch
return scmutil.callcatch(ui, func)
File "/usr/lib64/python2.7/site-packages/mercurial/scmutil.py", line 152, in callcatch
return func()
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 418, in _runcatchfunc
return _dispatch(req)
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 1182, in _dispatch
lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 866, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 1193, in _runcommand
return cmdfunc()
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 1179, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 1854, in check
return func(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 1854, in check
return func(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/hgext/mq.py", line 4218, in mqcommand
return orig(ui, repo, *args, **kwargs)
File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 1854, in check
return func(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/mercurial/commands.py", line 5658, in push
opargs=opargs,
File "/usr/lib64/python2.7/site-packages/hggit/util.py", line 60, in inner
return f(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/hggit/__init__.py", line 384, in exchangepush
pushop.cgresult = repo.githandler.push(remote.path, revs, force)
File "/usr/lib64/python2.7/site-packages/hggit/git_handler.py", line 405, in push
self.export_commits()
File "/usr/lib64/python2.7/site-packages/hggit/git_handler.py", line 370, in export_commits
self.export_git_objects()
File "/usr/lib64/python2.7/site-packages/hggit/git_handler.py", line 528, in export_git_objects
self.export_hg_commit(ctx.node(), exporter)
File "/usr/lib64/python2.7/site-packages/hggit/git_handler.py", line 603, in export_hg_commit
for obj, nodeid in exporter.update_changeset(ctx):
File "/usr/lib64/python2.7/site-packages/hggit/hg2git.py", line 196, in update_changeset
modified, added, removed = self._hg.status(self._ctx, newctx)[0:3]
TypeError: 'status' object has no attribute '__getitem__'