Removing a .gitignore file breaks gitdirstate.py
Created originally on Bitbucket by Anonymous
Removing a .gitignore file from a repository when hg-git is enabled leads to a crash, at least without using hg rm
and possibly also with. Example traceback:
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 140, in _runcatch
return _dispatch(req)
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 863, in _dispatch
cmdpats, cmdoptions)
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 624, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 194, in wrap
return wrapper(origfn, *args, **kwargs)
File "/usr/lib64/python2.7/site-packages/hgext/color.py", line 491, in colorcmd
return orig(ui_, opts, cmd, cmdfunc)
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 954, in _runcommand
return checkargs()
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 925, in checkargs
return cmdfunc()
File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 860, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 711, in check
return func(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 149, in wrap
util.checksignature(origfn), *args, **kwargs)
File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 711, in check
return func(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/hgext/mq.py", line 3483, in mqcommand
return orig(ui, repo, *args, **kwargs)
File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 711, in check
return func(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/mercurial/commands.py", line 5706, in status
opts.get('subrepos'))
File "/usr/lib64/python2.7/site-packages/mercurial/localrepo.py", line 1572, in status
listsubrepos)
File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 312, in status
listunknown)
File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 1537, in _buildstatus
s = self._dirstatestatus(match, listignored, listclean, listunknown)
File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 1506, in _dirstatestatus
listclean, listunknown)
File "/usr/lib64/python2.7/site-packages/mercurial/dirstate.py", line 850, in status
full=full).iteritems():
File "/usr/lib64/python2.7/site-packages/mercurial/dirstate.py", line 690, in walk
ignore = self._ignore
File "/usr/lib64/python2.7/site-packages/mercurial/scmutil.py", line 1039, in __get__
entry.obj = self.func(obj)
File "/usr/lib64/python2.7/site-packages/hggit/gitdirstate.py", line 104, in _ignore
fp = open(fn)
IOError: [Errno 2] No such file or directory: 'Godeps/_workspace/.gitignore'
abort: No such file or directory: Godeps/_workspace/.gitignore