When working directorys consist of multiple repository,
if cvs commit across multiple repository,
cvs says `cvs [commit aborted]: cannot specify both a message and a log file'.

Example session:
  % cvs -f ci -F /tmp/1 -f 00changes OS2/00readme
  Checking in 00changes;
  /var/tmp/repo/mew/00changes,v  <--  00changes
  new revision: 10.10; previous revision: 10.9
  done
  cvs [commit aborted]: cannot specify both a message and a log file
  %

This is very quick hack.
Index: commit.c
===================================================================
RCS file: /home2/cvsroot/ccvs/src/commit.c,v
retrieving revision 1.159
diff -p -u -b -B -r1.159 commit.c
--- commit.c    2000/02/28 20:33:53     1.159
+++ commit.c    2000/04/10 16:04:29
@@ -369,6 +369,11 @@ commit (argc, argv)
 #else
                use_editor = 0;
 #endif
+#if 1
+                if (logfile)
+                    error (1, 0, "cannot specify both a message and a log file");
+#endif
+
                if (saved_message)
                {
                    free (saved_message);
@@ -423,8 +428,10 @@ commit (argc, argv)
     {
        size_t size = 0, len;
 
+#if 0
        if (saved_message)
            error (1, 0, "cannot specify both a message and a log file");
+#endif
 
        get_file (logfile, logfile, "r", &saved_message, &size, &len);
     }

I concern that cvs frequently use static initializer to fill zero.
Many functions returns a malloc'ed object,
but cvs sometimes fogets to free.
e.g date = Make_Date (optarg) at src/update.c.
It is too late to refactor, cvs has much entropy...
(I'm sorry, I have no enough skill to refine.)

--
KOIE Hidetaka <[EMAIL PROTECTED]> in Japan.

Reply via email to