status: added option -p and -0 to assist xargs
authorTK Soh <teekaysoh@yahoo.com>
Sat, 27 Aug 2005 01:49:41 -0700
changeset 1085 6f94688b81b6
parent 1084 069b4311a81b
child 1086 50a8acefb53d
status: added option -p and -0 to assist xargs The -p option strips the status prefix of each file, while -0 ends each file with a NUL character, instead of a newline. Together, selected group of files can be passed to 'xargs -0' for further processing.
mercurial/commands.py
--- a/mercurial/commands.py	Sat Aug 27 01:49:35 2005 -0700
+++ b/mercurial/commands.py	Sat Aug 27 01:49:41 2005 -0700
@@ -1347,10 +1347,17 @@
                    ('removed', 'R', d),
                    ('unknown', '?', u)]
 
+    end = opts['print0'] and '\0' or '\n'
+    
     for opt, char, changes in ([ct for ct in changetypes if opts[ct[0]]]
                                or changetypes):
+        if opts['strip']:
+            format = "%%s%s" % end
+        else:
+            format = "%s %%s%s" % (char, end);
+            
         for f in changes:
-            ui.write("%s %s\n" % (char, f))
+            ui.write(format % f)
 
 def tag(ui, repo, name, rev=None, **opts):
     """add a tag for the current tip or a given revision"""
@@ -1628,6 +1635,8 @@
           ('a', 'added', None, 'show only added files'),
           ('r', 'removed', None, 'show only removed files'),
           ('u', 'unknown', None, 'show only unknown (not tracked) files'),
+          ('p', 'strip', None, 'strip status prefix'),
+          ('0', 'print0', None, 'end records with NUL'),
           ('I', 'include', [], 'include path in search'),
           ('X', 'exclude', [], 'exclude path from search')],
          "hg status [OPTION]... [FILE]..."),