- edited description
'trying to get a popped file' exception while 'hg pull' when EOL extension is enabled
** unknown exception encountered, please report by visiting ** http://mercurial.selenic.com/wiki/BugTracker ** Python 2.7.3 (default, Apr 30 2012, 21:18:11) [GCC 4.7.0 20120416 (Red Hat 4.7.0-2)] ** Mercurial Distributed SCM (version 2.2.2) ** Extensions loaded: hgsubversion, rebase, mq, extdiff, eol, graphlog Traceback (most recent call last): File "/bin/hg", line 38, in <module> mercurial.dispatch.run() File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 27, in run sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255) File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 64, in dispatch return _runcatch(req) File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 87, in _runcatch return _dispatch(req) File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 696, in _dispatch cmdpats, cmdoptions) File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 472, in runcommand ret = _runcommand(ui, options, cmd, d) File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 786, in _runcommand return checkargs() File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 757, in checkargs return cmdfunc() File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 693, in <lambda> d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 463, in check return func(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 352, in __call__ util.checksignature(self.fn)(ui, *args, **opts) File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 463, in check return func(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 139, in wrap util.checksignature(origfn), *args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 463, in check return func(*args, **kwargs) File "/users/amalakho/hg/hgsvn/hgsubversion/wrappers.py", line 632, in generic return orig(ui, repo, *args, **opts) File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 463, in check return func(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 139, in wrap util.checksignature(origfn), *args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 463, in check return func(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/hgext/mq.py", line 3392, in mqcommand return orig(ui, repo, *args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 463, in check return func(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 139, in wrap util.checksignature(origfn), *args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 463, in check return func(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/hgext/rebase.py", line 649, in pullrebase orig(ui, repo, *args, **opts) File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 463, in check return func(*args, **kwargs) File "/usr/lib64/python2.7/site-packages/mercurial/commands.py", line 4458, in pull modheads = repo.pull(other, heads=revs, force=opts.get('force')) File "/users/amalakho/hg/hgsvn/hgsubversion/svnrepo.py", line 81, in wrapper return fn(self, *args, **opts) File "/users/amalakho/hg/hgsvn/hgsubversion/svnrepo.py", line 104, in pull return wrappers.pull(self, remote, heads, force) File "/users/amalakho/hg/hgsvn/hgsubversion/wrappers.py", line 443, in pull firstrun) File "/users/amalakho/hg/hgsvn/hgsubversion/replay.py", line 66, in convert_rev return _convert_rev(ui, meta, svn, r, tbdelta, firstrun) File "/users/amalakho/hg/hgsvn/hgsubversion/replay.py", line 191, in _convert_rev new_hash = meta.repo.svn_commitctx(current_ctx) File "/users/amalakho/hg/hgsvn/hgsubversion/svnrepo.py", line 91, in svn_commitctx hash = self.commitctx(ctxctx(ctx)) File "/usr/lib64/python2.7/site-packages/hgext/eol.py", line 343, in commitctx return super(eolrepo, self).commitctx(ctx, error) File "/usr/lib64/python2.7/site-packages/mercurial/localrepo.py", line 1248, in commitctx fctx = ctx[f] File "/users/amalakho/hg/hgsvn/hgsubversion/svnrepo.py", line 60, in __getitem__ return self._ctx[key] File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 1185, in __getitem__ return self.filectx(key) File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 1227, in filectx return self._filectxfn(self._repo, self, path) File "/users/amalakho/hg/hgsvn/hgsubversion/replay.py", line 158, in filectxfn data, isexec, islink, copied = current.pop(current_file) File "/users/amalakho/hg/hgsvn/hgsubversion/editor.py", line 133, in pop ret = self.get(path) File "/users/amalakho/hg/hgsvn/hgsubversion/editor.py", line 126, in get data = self.store.getfile(path) File "/users/amalakho/hg/hgsvn/hgsubversion/editor.py", line 62, in getfile raise EditingError('trying to get a popped file %s' % fname) hgext_hgsubversion.editor.EditingError: trying to get a popped file trunk/tbb/1.0/include/tbb/internal/_concurrent_unordered_impl.h
Comments (14)
-
-
Please fix or workaround it ASAP! It really blocks my normal way to work - I have to move .hgeol forth and back on each 'hg pull' :(
** Unknown exception encountered with possibly-broken third-party extension hgsubversion ** which supports versions unknown of Mercurial. ** Please disable hgsubversion and try your action again. ** If that fixes the bug please report it to the extension author. ** Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] ** Mercurial Distributed SCM (version 2.4.2) ** Extensions loaded: hgsubversion, reviewboard, thgissue2329, rebase, mq, extdiff, eol Traceback (most recent call last): File "hg", line 42, in <module> File "mercurial\dispatch.pyo", line 28, in run File "mercurial\dispatch.pyo", line 65, in dispatch File "mercurial\dispatch.pyo", line 88, in _runcatch File "mercurial\dispatch.pyo", line 741, in _dispatch File "mercurial\dispatch.pyo", line 514, in runcommand File "mercurial\dispatch.pyo", line 831, in _runcommand File "mercurial\dispatch.pyo", line 802, in checkargs File "mercurial\dispatch.pyo", line 738, in <lambda> File "mercurial\util.pyo", line 472, in check File "mercurial\dispatch.pyo", line 394, in __call__ File "mercurial\util.pyo", line 472, in check File "mercurial\extensions.pyo", line 144, in wrap File "mercurial\util.pyo", line 472, in check File "hgext\mq.pyo", line 3546, in mqcommand File "mercurial\util.pyo", line 472, in check File "mercurial\extensions.pyo", line 144, in wrap File "mercurial\util.pyo", line 472, in check File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\wrappers.py", line 625, in generic return orig(ui, repo, *args, **opts) File "mercurial\util.pyo", line 472, in check File "mercurial\extensions.pyo", line 144, in wrap File "mercurial\util.pyo", line 472, in check File "hgext\rebase.pyo", line 704, in pullrebase File "mercurial\util.pyo", line 472, in check File "mercurial\commands.pyo", line 4656, in pull File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\svnrepo.py", line 81, in wrapper return fn(self, *args, **opts) File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\svnrepo.py", line 104, in pull return wrappers.pull(self, remote, heads, force) File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\wrappers.py", line 436, in pull firstrun) File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\replay.py", line 66, in convert_rev return _convert_rev(ui, meta, svn, r, tbdelta, firstrun) File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\replay.py", line 191, in _convert_rev new_hash = meta.repo.svn_commitctx(current_ctx) File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\svnrepo.py", line 91, in svn_commitctx hash = self.commitctx(ctxctx(ctx)) File "hgext\eol.pyo", line 347, in commitctx File "mercurial\localrepo.pyo", line 1423, in commitctx File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\svnrepo.py", line 60, in __getitem__ return self._ctx[key] File "mercurial\context.pyo", line 1223, in __getitem__ File "mercurial\context.pyo", line 1265, in filectx File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\replay.py", line 158, in filectxfn data, isexec, islink, copied = current.pop(current_file) File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\editor.py", line 133, in pop ret = self.get(path) File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\editor.py", line 126, in get data = self.store.getfile(path) File "C:\Progra~1\TortoiseHg\hgsvn\hgsubversion\editor.py", line 62, in getfile raise EditingError('trying to get a popped file %s' % fname) hgext_hgsubversion.editor.EditingError: trying to get a popped file trunk/tbb/1.0/src/tbb/arena.cpp
-
- marked as critical
trying to rise visibility.. It affect every day of my work!
-
Reverting the following revision helped to solve the issue:
945 (bfbfc9be3faa) editor: add a pop() method to RevisionMeta to reduce resource usage Patrick Mezard patrick@mezard.eu 2012-09-26 21:01:17 +0200
-
It is really annoying behavior. I hope it will be fixed to allow real hg - svn interaction for Windows users.
Thank you for the hint, Anton, it solved my case too.
-
EOL really shouldn't be able to break this. What version of hg eol are you using?
-
Changeset hash: 09b5e6a76724e0897e930f6fc113c0549290bc45
It was repository created by hgsubversion extension. Later I enabled EOL to avoid issues with LF endings in SVN repository, but got this exception.
When I removed .hgeol, this exception disappeared. When I reverted it back, it failed again with the same exception. Then I reverted patch (Anton suggestion) and this exception disappeared
-
Same here. With EOL enabled, hg pull failed.
-
Update: with the most recent version the bug is still there.
** Unknown exception encountered with possibly-broken third-party extension hgsubversion ** which supports versions unknown of Mercurial. ** Please disable hgsubversion and try your action again. ** If that fixes the bug please report it to the extension author. ** Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] ** Mercurial Distributed SCM (version 3.1.1) ** Extensions loaded: hgsubversion, reviewboard, thgissue2329, rebase, strip, mq, extdiff, eol, fetch, tortoisehg.util.partialcommit, tortoisehg.util.pipeui, tortoisehg.util.win32ill, tortoisehg.util.hgdispatch ** Unknown exception encountered with possibly-broken third-party extension hgsubversion ** which supports versions unknown of Mercurial. ** Please disable hgsubversion and try your action again. ** If that fixes the bug please report it to the extension author. ** Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] ** Mercurial Distributed SCM (version 3.1.1) ** Extensions loaded: hgsubversion, reviewboard, thgissue2329, rebase, strip, mq, extdiff, eol, fetch, tortoisehg.util.partialcommit, tortoisehg.util.pipeui, tortoisehg.util.win32ill, tortoisehg.util.hgdispatch Traceback (most recent call last): File "hg", line 42, in <module> File "mercurial\dispatch.pyo", line 28, in run File "mercurial\dispatch.pyo", line 69, in dispatch File "mercurial\dispatch.pyo", line 138, in _runcatch File "mercurial\dispatch.pyo", line 820, in _dispatch File "mercurial\dispatch.pyo", line 600, in runcommand File "mercurial\dispatch.pyo", line 911, in _runcommand File "mercurial\dispatch.pyo", line 882, in checkargs File "mercurial\dispatch.pyo", line 817, in <lambda> File "mercurial\util.pyo", line 550, in check File "mercurial\extensions.pyo", line 151, in wrap File "mercurial\util.pyo", line 550, in check File "hgext\mq.pyo", line 3393, in mqcommand File "mercurial\util.pyo", line 550, in check File "mercurial\commands.pyo", line 5283, in serve File "mercurial\commandserver.pyo", line 244, in serve File "mercurial\commandserver.pyo", line 224, in serveone File "mercurial\commandserver.pyo", line 207, in runcommand File "mercurial\dispatch.pyo", line 69, in dispatch File "mercurial\dispatch.pyo", line 138, in _runcatch File "mercurial\extensions.pyo", line 196, in wrap File "tortoisehg\util\hgdispatch.pyo", line 101, in _dispatch File "mercurial\dispatch.pyo", line 820, in _dispatch File "mercurial\dispatch.pyo", line 600, in runcommand File "mercurial\dispatch.pyo", line 911, in _runcommand File "mercurial\dispatch.pyo", line 882, in checkargs File "mercurial\dispatch.pyo", line 817, in <lambda> File "mercurial\util.pyo", line 550, in check File "mercurial\dispatch.pyo", line 458, in __call__ File "mercurial\util.pyo", line 550, in check File "mercurial\extensions.pyo", line 151, in wrap File "mercurial\util.pyo", line 550, in check File "hgext\mq.pyo", line 3393, in mqcommand File "mercurial\util.pyo", line 550, in check File "mercurial\extensions.pyo", line 151, in wrap File "mercurial\util.pyo", line 550, in check File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\wrappers.py", line 653, in generic return orig(ui, repo, *args, **opts) File "mercurial\util.pyo", line 550, in check File "mercurial\extensions.pyo", line 151, in wrap File "mercurial\util.pyo", line 550, in check File "hgext\rebase.pyo", line 920, in pullrebase File "mercurial\util.pyo", line 550, in check File "mercurial\commands.pyo", line 4700, in pull File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\svnrepo.py", line 77, in wrapper return fn(self, *args, **opts) File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\svnrepo.py", line 105, in pull return wrappers.pull(self, remote, heads, force) File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\wrappers.py", line 461, in pull firstrun) File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\replay.py", line 57, in convert_rev return _convert_rev(ui, meta, svn, r, tbdelta, firstrun) File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\replay.py", line 187, in _convert_rev new_hash = meta.repo.svn_commitctx(current_ctx) File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\svnrepo.py", line 90, in svn_commitctx hash = self.commitctx(ctxctx(ctx)) File "hgext\eol.pyo", line 337, in commitctx File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\svnrepo.py", line 60, in __getitem__ return self._ctx[key] File "mercurial\context.pyo", line 61, in __getitem__ File "mercurial\context.pyo", line 1601, in filectx File "C:/Progra~1/TortoiseHg/hgsvn\hgsubversion\replay.py", line 151, in filectxfn data, isexec, islink, copied = current.pop(current_file) AttributeError: 'RevisionData' object has no attribute 'pop'
-
- marked as minor
Moving this back to minor - there's an easy workaround (--config extensions.eol=! or similar on pull), and I have little expectation that any existing contributors will step up to figure out the problem.
I'd welcome patches that fix this, but I really strongly expect that the issue lies with something EOL is doing.
-
the workaround is still the same:
diff --git a/hgsubversion/replay.py b/hgsubversion/replay.py --- a/hgsubversion/replay.py +++ b/hgsubversion/replay.py @@ -148,7 +148,7 @@ def filectxfn(repo, memctx, path): current_file = files[path] try: - data, isexec, islink, copied = current.pop(current_file) + data, isexec, islink, copied = current.get(current_file) except IOError: return compathacks.filectxfn_deleted_reraise(memctx) if isexec is None or islink is None:
-
Bugtrackers are a bad place for patches. Please:
1) run the testsuite and see if anything breaks (btw, if something breaks, then it's a near-certainty that you're playing with fire with that fix) 2) commit the change 3) use http://mercurial.selenic.com/wiki/PatchbombExtension to mail the change to hgsubversion@googlegroups.com
Thanks!
-
I'm not sure it is a good way to fix the issue since it basically reverts the mentioned revision (bfbfc9be3faa) in a concise way.
-
Yeah, that does seem bad.
Like I said - this is definitely a bug, but it's very unlikely that anyone is going to look at it other than you. Patches definitely encouraged, and folks in #hgsubversion or #mercurial on freenode can probably offer some guidance/moral support if you want to dig into this.
- Log in to comment