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 71 forks source link

Unable to "hg gexport" octave hg repo #276

Open brarcher opened 10 years ago

brarcher commented 10 years ago

hggit encounters issues when converting octave's hg repoistory:

http://www.octage.org/hg/octave

into git using hg-git.

Steps to reproduce:

1) Using hg version 2.0.2 2) Using hg-git version 0.5.0 3) clone Octave:

hg clone http://www.octage.org/hg/octave

4) Enter cloned repository and hg-git:

hg gexport

Following is the contents of the .hgrc file:

[ui]
username = Some Name <some.email@somewhere.com>

[extensions]
hggit = /home/user/workspace/hg-git-0.5.0/build/lib.linux-x86_64-2.7/hggit

[git]
intree = True

Following is the exception from the export:

** unknown exception encountered, please report by visiting
**  http://mercurial.selenic.com/wiki/BugTracker
** Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3]
** Mercurial Distributed SCM (version 2.0.2)
** Extensions loaded: hggit
Traceback (most recent call last):
  File "/usr/bin/hg", line 38, in <module>
    mercurial.dispatch.run()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 27, in run
    sys.exit(dispatch(request(sys.argv[1:])))
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 64, in dispatch
    return _runcatch(req)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 87, in _runcatch
    return _dispatch(req)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 684, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 466, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 738, in _runcommand
    return checkargs()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 692, in checkargs
    return cmdfunc()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 681, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 458, in check
    return func(*args, **kwargs)
  File "/home/user/workspace/hg-git-0.5.0/build/lib.linux-x86_64-2.7/hggit/__init__.py", line 127, in gexport
    git.export_commits()
  File "/home/user/workspace/hg-git-0.5.0/build/lib.linux-x86_64-2.7/hggit/git_handler.py", line 242, in export_commits
    self.export_git_objects()
  File "/home/user/workspace/hg-git-0.5.0/build/lib.linux-x86_64-2.7/hggit/git_handler.py", line 368, in export_git_objects
    self.export_hg_commit(rev, exporter)
  File "/home/user/workspace/hg-git-0.5.0/build/lib.linux-x86_64-2.7/hggit/git_handler.py", line 433, in export_hg_commit
    for obj, nodeid in exporter.update_changeset(ctx):
  File "/home/user/workspace/hg-git-0.5.0/build/lib.linux-x86_64-2.7/hggit/hg2git.py", line 118, in update_changeset
    del tree[os.path.basename(path)]
  File "/usr/lib/python2.7/dist-packages/dulwich/objects.py", line 854, in __delitem__
    del self._entries[name]
KeyError: '.hgsub'