Hello,

Eric Polino wrote:
08:50:05 [I] /home/aluink $ mtn automate certs
...
/home/aluink/monotone-database/pidgin.mtn 2>&1

I'm not shure, but the " 2>&1" in end of all the monotone commands is
not good idea.

Monotone (and Subversion) is called with
  err, out = mtl.execute(stdout=PIPE, stderr=PIPE)
to catch the error in a separate file.

In vcpx/shwrap.py found this bad news (Tue Jul 10 18:13:09 CEST 2007):
@@ -87,6 +89,8 @@ class ExternalCommand:
         r = '$'+repr(self)
         if self.cwd:
             r = self.cwd + ' ' + r
+        if self.capture_stderr:
+            r = r + ' 2>&1'
         return r

     def __repr__(self):
@@ -137,6 +141,11 @@ class ExternalCommand:

         from cStringIO import StringIO

+        if kwargs.get('stderr'):
+            self.capture_stderr = True
+        else:
+            self.capture_stderr = False
+
         if len(args) == 1 and type(args[0]) == type([]):
             allargs = list(args[0])
         else:
<<< end diff <<<

I think, the 'capture_stderr' should only TRUE, if the parameter is
'stderr=STDOUT'? (found on vcpx/repository/cvs.py:618)

Bad news is, that any error from svn, monotone and others could be
inject in the output file. Stdout in monotone is used as data out (mtn
automate). Typicaly Monotone says man things (Warnings) to the stderr.
But the stdout is clean. The output should be empty, if nothing was
found. The output should have only clear datas, no human readable texts.
The stderr can be displayed from the error pipe.

With the changes below can't differ error and data any more - very bad. Please change it back without "2>&1", if "stderr=PIPE" is given.

--
Henry

_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor

Reply via email to