[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Rename atomicity
From: |
Assar Westerlund |
Subject: |
Re: Rename atomicity |
Date: |
23 Mar 2001 23:24:19 +0100 |
User-agent: |
Gnus/5.070098 (Pterodactyl Gnus v0.98) Emacs/20.6 |
"Derek R. Price" <dprice@collab.net> writes:
> Could you resubmit it to bug-cvs@gnu.org? This releases it under the GPL.
> :) Then I'll take a look.
Sure, included below.
> I'm not promising anything, but if you simply
> fixed '-n' to make the server read only, I can't think of an offhand reason
> to object. If you did more than this, please either back the rest out or
> provide me with a good argument for the other bits before I spend time trying
> to decipher source code.
That's not what I did. What the patch below does is introduce an
option (`-R') for running without creating any lock-files.
This allows you to have a non-server based r/o CVSROOT (or where a
particular user does not have write permission).
I'm of course more than welcome to discuss how this should be done,
but I do think that this is something that the users actually want.
/assar
Index: src/cvs.h
===================================================================
RCS file: /home2/cvsroot/ccvs/src/cvs.h,v
retrieving revision 1.216
diff -u -w -r1.216 cvs.h
--- src/cvs.h 2001/02/14 04:31:26 1.216
+++ src/cvs.h 2001/02/18 02:18:05
@@ -401,6 +401,7 @@
extern int trace; /* Show all commands */
extern int noexec; /* Don't modify disk anywhere */
extern int logoff; /* Don't write history entry */
+extern int nolock; /* Don't do any locking */
extern int top_level_admin;
Index: src/lock.c
===================================================================
RCS file: /home2/cvsroot/ccvs/src/lock.c,v
retrieving revision 1.54
diff -u -w -r1.54 lock.c
--- src/lock.c 2001/02/06 15:29:43 1.54
+++ src/lock.c 2001/02/18 02:18:05
@@ -396,7 +396,7 @@
FILE *fp;
char *tmp;
- if (noexec)
+ if (noexec || nolock)
return (0);
/* we only do one directory at a time for read locks! */
@@ -468,7 +468,7 @@
{
char *wait_repos;
- if (noexec)
+ if (noexec || nolock)
return (0);
/* We only know how to do one list at a time */
Index: src/main.c
===================================================================
RCS file: /home2/cvsroot/ccvs/src/main.c,v
retrieving revision 1.160
diff -u -w -r1.160 main.c
--- src/main.c 2001/02/14 04:31:26 1.160
+++ src/main.c 2001/02/18 02:18:05
@@ -42,6 +42,7 @@
int trace = 0;
int noexec = 0;
int logoff = 0;
+int nolock = 0;
/* Set if we should be writing CVSADM directories at top level. At
least for now we'll make the default be off (the CVS 1.9, not CVS
@@ -242,6 +243,7 @@
" -r Make checked-out files read-only.\n",
" -w Make checked-out files read-write (default).\n",
" -l Turn history logging off.\n",
+ " -R Don't create lock files (allow r/o CVSROOT), implies
-l.\n",
" -n Do not execute anything that will change the disk.\n",
" -t Show trace of program execution -- try with -n.\n",
" -v CVS version and copyright.\n",
@@ -436,7 +438,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[] = "+QqrwtnlRvb:T:e:d:Hfz:s:xa";
static struct option long_options[] =
{
{"help", 0, NULL, 'H'},
@@ -567,6 +569,10 @@
case 'n':
noexec = 1;
case 'l': /* Fall through */
+ logoff = 1;
+ break;
+ case 'R':
+ nolock = 1;
logoff = 1;
break;
case 'v':