[PATCH 11 of 13] record: make use of output labeling

Brodie Rao dackze at gmail.com
Wed Mar 31 10:00:47 CDT 2010


# HG changeset patch
# User Brodie Rao <brodie at bitheap.org>
# Date 1270046446 18000
# Node ID c4281142b0fe21f14bb1174ea96aaab4af1c618c
# Parent  ec476ee5d8f44061aa117e2680bbc2e915577958
record: make use of output labeling

diff --git a/hgext/record.py b/hgext/record.py
--- a/hgext/record.py
+++ b/hgext/record.py
@@ -520,7 +520,18 @@ def dorecord(ui, repo, commitfunc, *pats
                 os.rmdir(backupdir)
             except OSError:
                 pass
-    return cmdutil.commit(ui, repo, recordfunc, pats, opts)
+
+    # wrap ui.write so diff output can be labeled/colorized
+    def wrapwrite(orig, *args, **kw):
+        label = kw.pop('label', '')
+        for chunk, l in patch.difflabel(lambda: args):
+            orig(chunk, label=label + l)
+    oldwrite = ui.write
+    extensions.wrapfunction(ui, 'write', wrapwrite)
+    try:
+        return cmdutil.commit(ui, repo, recordfunc, pats, opts)
+    finally:
+        ui.write = oldwrite
 
 cmdtable = {
     "record":


More information about the Mercurial-devel mailing list