filemerge regression in 1.9
Steve Borho
steve at borho.org
Wed Jul 6 03:43:14 UTC 2011
Since Mercurial 1.9, TortoiseHg is no longer able launch external
merge tools from the resolve tool when our app is launched from the
shell extension. All we get is a meaningless error:
% hg resolve --traceback -a
merging foo.c
abort: The handle is invalid
Looking at the diffs, I'm fairly certain this was caused by
e3be7dc9a5e1, which passes sys.stdout to util.system as an output file
handle. When TortoiseHg is not launched from a command shell,
sys.stdout and sys.stderr are *not* valid file handles.
I think to resolve this cleanly, ui.fout needs to be a
cStringIO.StringIO() or something similar when sys.stdout is not a
valid handle (ditto for sys.stderr). I'm curious how others feel
about this.
--
Steve Borho
More information about the Mercurial-devel
mailing list