With color extension activated on a windows box, a simple hg version raises the following backtrace: @ Dev> hg version Traceback (most recent call last): File "hg", line 27, in <module> File "mercurial\dispatch.pyc", line 16, in run File "mercurial\dispatch.pyc", line 34, in dispatch File "mercurial\dispatch.pyc", line 165, in _runcatch File "mercurial\ui.pyc", line 505, in warn File "hgext\color.pyc", line 166, in write_err NameError: global name 'orig' is not defined The culprit seems to be changeset d8d0fc3988ca
Ugh, that sounds pretty bad. Quick 1.6.2?
Can you test this? diff -r 56b41b2cc690 hgext/color.py --- a/hgext/color.py Sun Aug 01 13:49:43 2010 -0500 +++ b/hgext/color.py Sun Aug 01 16:21:50 2010 -0400 @@ -154,7 +154,7 @@ class colorui(uimod.ui): self._buffers[-1].extend([(str(a), label) for a in args]) elif self._colormode == 'win32': for a in args: - win32print(a, orig, **opts) + win32print(a, super(colorui, self).write, **opts) else: return super(colorui, self).write( *[self.label(str(a), label) for a in args], **opts) @@ -163,7 +163,7 @@ class colorui(uimod.ui): label = opts.get('label', '') if self._colormode == 'win32': for a in args: - win32print(a, orig, **opts) + win32print(a, super(colorui, self).write_err, **opts) else: return super(colorui, self).write( *[self.label(str(a), label) for a in args], **opts)
Hi Brodie, your patch is working fine.
Fixed by http://hg.intevation.org/mercurial/crew/rev/c34a1ab80550 Brodie Rao <brodie@bitheap.org> color: pass write/write_err to win32print correctly (issue2312)
--- Bug imported by bugzilla@serpentine.com 2012-05-12 09:11 EDT --- This bug was previously known as _bug_ 2312 at http://mercurial.selenic.com/bts/issue2312