I was using RCS under 4.0-release when it started causing me grief. At
first I thought I'd been making typos in options, but I can replicate
what I *think* are two errors in behavior. I welcome being set right.
(And I did check the change notes for 4.0-current, but didn't see
anything to indicate that this had been worked on.)
It has long been my habit to maintain every configuration file I "hand
edit" in RCS. This means that I generally use the sequence:
co -l
....make changes with editor....
ci -u
....allow the system to run with new settings....
However, OpenRCS 3.6 won't allow me to cleanly do a co -l when the file
exists (mod 444) and there's no lock. It complains that the file is
writeable (despite permissions being read only). Also, if I abort the
checkout it still places a lock on the file.
An example sequence of commands:
$ touch test
$ ls -l test
-rw-r--r-- 1 jon wheel 0 Nov 27 11:20 test
$ ci -u test
RCS/test,v <-- test
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> A test file
>> .
initial revision: 1.1
done
$ ls -l
total 4
drwxr-xr-x 2 jon wheel 512 Nov 27 11:20 RCS
-r--r--r-- 1 jon wheel 0 Nov 27 11:20 test
$ ls -l RCS
total 4
-r--r--r-- 1 jon wheel 188 Nov 27 11:20 test,v
$ rlog test
RCS file: RCS/test,v
Working file: test
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
A test file
----------------------------
revision 1.1
date: 2006/11/27 16:20:57; author: jon; state: Exp;
Initial revision
=============================================================================
$ co -l test
RCS/test,v --> test
revision 1.1 (locked)
test exists; remove it? [ny](n): n
co: writable test exists; checkout aborted
$ ls -l
total 4
drwxr-xr-x 2 jon wheel 512 Nov 27 11:21 RCS
-r--r--r-- 1 jon wheel 0 Nov 27 11:20 test
$ rlog test
RCS file: RCS/test,v
Working file: test
head: 1.1
branch:
locks: strict
jon: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
A test file
----------------------------
revision 1.1 locked by: jon;
date: 2006/11/27 16:20:57; author: jon; state: Exp;
Initial revision
=============================================================================
$ ci -V
OpenCVS RCS version 3.6
$ co -V
OpenCVS RCS version 3.6
$ rlog -V
OpenCVS RCS version 3.6
$
With GNU RCS you can checkout a file that is not locked and is read-only:
$ touch test
$ ls -l test
-rw-r--r-- 1 jon wheel 0 Nov 27 11:39 test
$ gci -u test
RCS/test,v <-- test
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> A test file
>> .
initial revision: 1.1
done
$ ls -l
total 4
drwxr-xr-x 2 jon wheel 512 Nov 27 11:39 RCS
-r--r--r-- 1 jon wheel 0 Nov 27 11:39 test
$ ls -l RCS
total 4
-r--r--r-- 1 jon wheel 188 Nov 27 11:39 test,v
$ grlog test
RCS file: RCS/test,v
Working file: test
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
A test file
----------------------------
revision 1.1
date: 2006/11/27 16:39:47; author: jon; state: Exp;
Initial revision
=============================================================================
$ gco -l test
RCS/test,v --> test
revision 1.1 (locked)
done
$ grlog test
RCS file: RCS/test,v
Working file: test
head: 1.1
branch:
locks: strict
jon: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
A test file
----------------------------
revision 1.1 locked by: jon;
date: 2006/11/27 16:39:47; author: jon; state: Exp;
Initial revision
=============================================================================
Also, in GNU RCS, if you abort a checkout of an unlocked file, the file
remains unlocked:
$ grlog test
RCS file: RCS/test,v
Working file: test
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
A test file
----------------------------
revision 1.1
date: 2006/11/27 16:39:47; author: jon; state: Exp;
Initial revision
=============================================================================
$ ls -l test
-r--r--r-- 1 jon wheel 0 Nov 27 11:41 test
$ chmod 644 test
$ gco -l test
RCS/test,v --> test
revision 1.1 (locked)
writable test exists; remove it? [ny](n): n
co: checkout aborted
$ grlog test
RCS file: RCS/test,v
Working file: test
head: 1.1
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
A test file
----------------------------
revision 1.1
date: 2006/11/27 16:39:47; author: jon; state: Exp;
Initial revision
=============================================================================
$
Thanks.
--Jon Radel
[EMAIL PROTECTED]