diff -ru cvs-1.11/src/cvs.h cvs-1.11-nolock/src/cvs.h
--- cvs-1.11/src/cvs.h	Sat Jul  8 21:57:21 2000
+++ cvs-1.11-nolock/src/cvs.h	Tue Aug 14 02:31:01 2001
@@ -393,6 +393,7 @@
 extern int safe_location PROTO ((void));
 
 extern int trace;		/* Show all commands */
+extern int nolock;		/* Don't create any locks */
 extern int noexec;		/* Don't modify disk anywhere */
 extern int logoff;		/* Don't write history entry */
 
diff -ru cvs-1.11/src/client.c cvs-1.11-nolock/src/client.c
--- cvs-1.11/src/client.c	Tue Aug 14 02:14:57 2001
+++ cvs-1.11-nolock/src/client.c	Tue Aug 14 02:13:07 2001
@@ -4449,6 +4449,16 @@
     {
 	int have_global = supported_request ("Global_option");
 
+	if (nolock)
+	{
+	    if (have_global)
+	    {
+		send_to_server ("Global_option -R\012", 0);
+	    }
+	    else
+		error (1, 0,
+		       "This server does not support the global -R option.");
+	}
 	if (noexec)
 	{
 	    if (have_global)
diff -ru cvs-1.11/src/lock.c cvs-1.11-nolock/src/lock.c
--- cvs-1.11/src/lock.c	Tue Aug 14 02:14:57 2001
+++ cvs-1.11-nolock/src/lock.c	Tue Aug 14 02:09:20 2001
@@ -395,7 +395,7 @@
     FILE *fp;
     char *tmp;
 
-    if (noexec)
+    if (noexec || nolock)
 	return (0);
 
     /* we only do one directory at a time for read locks! */
@@ -467,7 +467,7 @@
 {
     char *wait_repos;
 
-    if (noexec)
+    if (noexec || nolock)
 	return (0);
 
     /* We only know how to do one list at a time */
diff -ru cvs-1.11/src/main.c cvs-1.11-nolock/src/main.c
--- cvs-1.11/src/main.c	Thu Sep  7 01:35:04 2000
+++ cvs-1.11-nolock/src/main.c	Tue Aug 14 02:08:56 2001
@@ -40,6 +40,7 @@
 int really_quiet = 0;
 int quiet = 0;
 int trace = 0;
+int nolock = 0;
 int noexec = 0;
 int logoff = 0;
 
@@ -432,7 +433,7 @@
     int help = 0;		/* Has the user asked for help?  This
 				   lets us support the `cvs -H cmd'
 				   convention to give help for cmd. */
-    static const char short_options[] = "+Qqrwtnlvb:T:e:d:Hfz:s:xa";
+    static const char short_options[] = "+QqrwtRnlvb:T:e:d:Hfz:s:xa";
     static struct option long_options[] =
     {
         {"help", 0, NULL, 'H'},
@@ -559,6 +560,9 @@
 		break;
 	    case 't':
 		trace = 1;
+		break;
+	    case 'R':
+		nolock = 1;
 		break;
 	    case 'n':
 		noexec = 1;
diff -ru cvs-1.11/src/server.c cvs-1.11-nolock/src/server.c
--- cvs-1.11/src/server.c	Tue Aug 14 02:14:57 2001
+++ cvs-1.11-nolock/src/server.c	Tue Aug 14 02:11:34 2001
@@ -2196,6 +2196,9 @@
     }
     switch (arg[1])
     {
+	case 'R':
+	    nolock = 1;
+	    break;
 	case 'n':
 	    noexec = 1;
 	    break;
diff -ru cvs-1.11/man/cvs.1 cvs-1.11-nolock/man/cvs.1
--- cvs-1.11/man/cvs.1	Wed May  3 20:47:47 2000
+++ cvs-1.11-nolock/man/cvs.1	Tue Aug 14 02:26:26 2001
@@ -204,6 +204,9 @@
 .B cvs
 startup file (\fI~/.cvsrc\fP).
 .TP
+.B \-R
+Do not lock files in the repository (use at your own risk).
+.TP
 .B \-l
 Do not log the
 .I cvs_command
