--- cvs-1.11.23/src/cvs.h +++ cvs-1.11.23/src/cvs.h @@ -269,6 +269,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 */ @@ -401,6 +402,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; --- cvs-1.11.23/src/lock.c +++ cvs-1.11.23/src/lock.c @@ -418,7 +418,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! */ --- cvs-1.11.23/src/main.c +++ cvs-1.11.23/src/main.c @@ -46,6 +46,7 @@ int really_quiet = 0; int quiet = 0; int trace = 0; int noexec = 0; +int noreadlock = 0; int logoff = 0; /* @@ -464,6 +465,8 @@ main (argc, argv) Editor = cp; 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. */