diff -uprk.orig cvs-1.11.15.orig/src/cvs.h cvs-1.11.15/src/cvs.h --- cvs-1.11.15.orig/src/cvs.h 2004-04-15 17:20:38 +0400 +++ cvs-1.11.15/src/cvs.h 2004-04-15 17:22:36 +0400 @@ -259,6 +259,7 @@ extern int errno; /* Environment variable used by CVS */ #define CVSREAD_ENV "CVSREAD" /* make files read-only */ +#define CVSNORDLOCK_ENV "CVSNOREADLOCK" /* succeed on all read locks */ #define CVSREAD_DFLT 0 /* writable files by default */ #define TMPDIR_ENV "TMPDIR" /* Temporary directory */ @@ -388,6 +389,7 @@ extern int safe_location PROTO ((char *) extern int trace; /* Show all commands */ extern int noexec; /* Don't modify disk anywhere */ +extern int noreadlock; /* Succeed on all read locks */ extern int logoff; /* Don't write history entry */ extern int top_level_admin; diff -uprk.orig cvs-1.11.15.orig/src/lock.c cvs-1.11.15/src/lock.c --- cvs-1.11.15.orig/src/lock.c 2004-04-15 17:20:38 +0400 +++ cvs-1.11.15/src/lock.c 2004-04-15 17:22:36 +0400 @@ -407,7 +407,7 @@ Reader_Lock (xrepository) (void) fprintf (stderr, "%s-> Reader_Lock(%s)\n", CLIENT_SERVER_STR, xrepository); - if (noexec) + if (noexec || noreadlock) return 0; /* we only do one directory at a time for read locks! */ diff -uprk.orig cvs-1.11.15.orig/src/main.c cvs-1.11.15/src/main.c --- cvs-1.11.15.orig/src/main.c 2004-04-15 17:20:38 +0400 +++ cvs-1.11.15/src/main.c 2004-04-15 17:22:36 +0400 @@ -41,6 +41,7 @@ int really_quiet = 0; int quiet = 0; int trace = 0; int noexec = 0; +int noreadlock = 0; int logoff = 0; /* Set if we should be writing CVSADM directories at top level. At @@ -469,6 +470,8 @@ main (argc, argv) } if (getenv (CVSREAD_ENV) != NULL) cvswrite = 0; + if (getenv (CVSNORDLOCK_ENV) != NULL) + noreadlock = logoff = 1; /* Set this to 0 to force getopt initialization. getopt() sets this to 1 internally. */