Index: ./subversion/include/svn_error_codes.h
===================================================================
--- ./subversion/include/.svn/text-base/svn_error_codes.h.svn-base	Wed Dec  5 19:12:53 2001
+++ ./subversion/include/svn_error_codes.h	Thu Dec  6 20:51:51 2001
@@ -359,6 +359,10 @@
   SVN_ERRDEF (SVN_ERR_CL_ADM_DIR_RESERVED,
               "Attempted command in administrative dir")
 
+  SVN_ERRDEF (SVN_ERR_CL_LOG_MESSAGE_IS_VERSIONED_FILE,
+              "The log message is under version control.  " \
+              "Use --force to override.")
+
   /* END Client errors */
   
 
Index: ./subversion/clients/cmdline/main.c
===================================================================
--- ./subversion/clients/cmdline/.svn/text-base/main.c.svn-base	Wed Dec  5 19:14:03 2001
+++ ./subversion/clients/cmdline/main.c	Thu Dec  6 21:04:49 2001
@@ -362,6 +362,7 @@
   apr_getopt_t *os;
   svn_cl__opt_state_t opt_state;
   const svn_cl__cmd_desc_t *subcommand = NULL;
+  svn_boolean_t log_under_version_control = FALSE;
 
   static const apr_getopt_option_t options[] =
   {
@@ -490,6 +491,14 @@
             svn_pool_destroy (pool);
             return EXIT_FAILURE;
           }
+        {
+          /* check that the file specified isn't versioned */
+          svn_wc_entry_t *ent;
+
+          err = svn_wc_entry(&ent, svn_stringbuf_create(opt_arg, pool), pool);
+          if (err == SVN_NO_ERROR)
+            log_under_version_control = TRUE;
+        }
         break;
       case 'M':
         opt_state.modified = TRUE;
@@ -575,6 +584,15 @@
               return EXIT_FAILURE;
             }
         }
+    }
+
+  if (log_under_version_control && (! opt_state.force))
+    {
+      svn_handle_error(svn_error_create
+                       (SVN_ERR_CL_LOG_MESSAGE_IS_VERSIONED_FILE, 0, NULL, 
+                        pool, ""), stdout, FALSE);
+      svn_pool_destroy(pool);
+      return EXIT_FAILURE;
     }
 
   /* If we made it this far, then we definitely have the subcommand,


