How to make RCS work with shared RCS directory

How to make RCS work with shared RCS directory

Post by Stefan Scho » Thu, 15 Jul 1993 18:04:17



Hello world,

I have the task to supervise a multiprogrammer project in the near
future. Therefore I would like to use rcs 5.6.0.1. I followed the
steps described in the manual pages to make ci and co setuid-programs
and made one new account for the RCS administration.

Now I would like to have one single RCS-directory and every user to
have his own development directory. My idea was, to put a symbolic
link from the shared RCS directory in every users development
directory (e.g. In ~user:DEVELOPMENT/ do "ln -s ~RCS_ADMIN/RCS RCS")
but RCS doesn't seem to be able to follow this symbolic link, because
a co with lock or a ci always gives a "Permission denied"-error. If I
name the RCS file explicitly on the command line (e.g.
"co -l file ~RCS_ADMIN/RCS/file,v") everything works fine.
If the user creates the RCS directory in his development directory and
then links the RCS files with "ln -s ~RCS_ADMIN/RCS/* RCS" also
everything works fine, but this would make it necessary to do the
command again and again everytime a new file is added to the project.

Am I doing something wrong? Is there any general solution *except*
writing a shell-wrapper around ci and co to pass the explicit RCS file
to the real ci and co programs?

Thanx
       Stefan

 
 
 

How to make RCS work with shared RCS directory

Post by Pradeep Chet » Thu, 15 Jul 1993 10:19:48



   Hello world,

   I have the task to supervise a multiprogrammer project in the near
   future. Therefore I would like to use rcs 5.6.0.1. I followed the
   steps described in the manual pages to make ci and co setuid-programs
   and made one new account for the RCS administration.

   Now I would like to have one single RCS-directory and every user to
   have his own development directory. My idea was, to put a symbolic
   link from the shared RCS directory in every users development
   directory (e.g. In ~user:DEVELOPMENT/ do "ln -s ~RCS_ADMIN/RCS RCS")
   but RCS doesn't seem to be able to follow this symbolic link, because
   a co with lock or a ci always gives a "Permission denied"-error. If I
   name the RCS file explicitly on the command line (e.g.
   "co -l file ~RCS_ADMIN/RCS/file,v") everything works fine.
   If the user creates the RCS directory in his development directory and
   then links the RCS files with "ln -s ~RCS_ADMIN/RCS/* RCS" also
   everything works fine, but this would make it necessary to do the
   command again and again everytime a new file is added to the project.

   Am I doing something wrong? Is there any general solution *except*
   writing a shell-wrapper around ci and co to pass the explicit RCS file
   to the real ci and co programs?

   Thanx
          Stefan

For multiprogrammer projects, I have heard that CVS is good. It can be
picked up from
        cvs-1.3.tar.gz

/Pradeep
--
============================================================================
Pradeep Chetal          UUCP:   ...!uunet!is.morgan.com!chetal

1633 Broadway,          Phone:          (212) 703-2220 (O)
NY, NY 10019                            (212) 703-2371 (FAX)
            _______________    __o
        _________________     -\<,
                        ......O/ O

 
 
 

How to make RCS work with shared RCS directory

Post by Aditya Palan » Fri, 16 Jul 1993 06:52:21


: Now I would like to have one single RCS-directory and every user to
: have his own development directory. My idea was, to put a symbolic
: link from the shared RCS directory in every users development
: directory (e.g. In ~user:DEVELOPMENT/ do "ln -s ~RCS_ADMIN/RCS RCS")
: but RCS doesn't seem to be able to follow this symbolic link, because
: a co with lock or a ci always gives a "Permission denied"-error. If I
: name the RCS file explicitly on the command line (e.g.
: "co -l file ~RCS_ADMIN/RCS/file,v") everything works fine.
: If the user creates the RCS directory in his development directory and
: then links the RCS files with "ln -s ~RCS_ADMIN/RCS/* RCS" also
: everything works fine, but this would make it necessary to do the
: command again and again everytime a new file is added to the project.

: Am I doing something wrong? Is there any general solution *except*
: writing a shell-wrapper around ci and co to pass the explicit RCS file
: to the real ci and co programs?

        Try the following:

        In ~user:DEVELOPMENT, create a file called RCS, which actually
only contains ONE line, the absolute path name to the ~RCS_ADMIN/RCS
directory.
        Now when the user checks in the code, rcs will see the RCS file,
find that it is a file, not a directory, and then actually keep the
rcs database in the ~RCS_ADMIN/RCS directory.
        Basically, RCS is allowing you to simulate something like a soft
link. I think there is a limit of 10 levels depth using this scheme.

        Hope you find this useful.

-- Aditya

(408)447-7035

 
 
 

How to make RCS work with shared RCS directory

Post by Pyung-Chul K » Fri, 16 Jul 1993 10:58:30



> Hello world,
> I have the task to supervise a multiprogrammer project in the near
> future. Therefore I would like to use rcs 5.6.0.1. I followed the
> steps described in the manual pages to make ci and co setuid-programs
> and made one new account for the RCS administration.
> Now I would like to have one single RCS-directory and every user to
> have his own development directory. My idea was, to put a symbolic
> link from the shared RCS directory in every users development
> directory (e.g. In ~user:DEVELOPMENT/ do "ln -s ~RCS_ADMIN/RCS RCS")
> but RCS doesn't seem to be able to follow this symbolic link, because
> a co with lock or a ci always gives a "Permission denied"-error. If I

Strange. I'm using RCS with no problem in the manner that you wanted.
Let me describe our usage in more detail to make sure.

- ci/co and some other rcs commands have set *group* id (say, rcs).
- the group id of the directory ~RCS_ADMIN/RCS is the same that of ci/co
  (say rcs, above) and directory is writable by its group (say,
  rwxrwxr-x).
- every private user is supposed to have a symbolic-link to
  ~RCS_ADMIN/RCS as you specified.

You may need to put some restriction on users who can co/ci for the RCS
directory by "rcs" command.
BTW, we are using RCS 5.3.

--

DB Section, Electronics and Telecommunications Research Inst. (ETRI)
P.O. Box 8, Taeduk Science Town, Taejon, 305-606, Korea
TEL: +82-42-860-6648    FAX: +82-42-860-6645

 
 
 

How to make RCS work with shared RCS directory

Post by Stefan Scho » Sat, 17 Jul 1993 19:48:01


Thanx to everyone who sent me answers by email or follow-up. I now
found out, that is was wrong to have my ~user/DEVELOPMENT directory
set to the rights 700. It must be read- and executable by the group,
too.

Again, thank you all
                      Stefan

 
 
 

How to make RCS work with shared RCS directory

Post by Pierre Assel » Sat, 17 Jul 1993 07:39:14




Quote:>Now I would like to have one single RCS-directory and every user to
>have his own development directory. My idea was, to put a symbolic
>link from the shared RCS directory in every users development
>directory (e.g. In ~user:DEVELOPMENT/ do "ln -s ~RCS_ADMIN/RCS RCS")

But make sure that all the developers have write access to the
~RCS_ADMIN/RCS directory.  E.g. ask root to add an entry in /etc/group
for the project and to place all the team members in it.  Then tell Mr.
RCS_ADMIN to chgrp his RCS directory.

When one of your developers checks in a file, ci will create a new ,v
file and unlink the old.  After a while, the file ownerships in
~RCS_ADMIN/RCS will be all jumbled.

Quote:>but RCS doesn't seem to be able to follow this symbolic link, because
>a co with lock or a ci always gives a "Permission denied"-error. If I
>name the RCS file explicitly on the command line (e.g.
>"co -l file ~RCS_ADMIN/RCS/file,v") everything works fine.

That I don't understand.  The user needs read access for a plain
checkout and read-write for a lock, but going through a symbolic link
shouldn't change his access rights.  I'm lost.  Try to find to what
object the permission is denied.
--

--Pierre Asselin, Magnetoresistive Head Engineering, Applied Magnetics.

 
 
 

How to make RCS work with shared RCS directory

Post by Peter Mutsae » Sat, 17 Jul 1993 02:42:56



  Stefan> Now I would like to have one single RCS-directory and every
  Stefan> user to have his own development directory. My idea was, to
  Stefan> put a symbolic link from the shared RCS directory in every
  Stefan> users development directory (e.g. In ~user:DEVELOPMENT/ do
  Stefan> "ln -s ~RCS_ADMIN/RCS RCS") but RCS doesn't seem to be able
  Stefan> to follow this symbolic link, because a co with lock or a ci
  Stefan> always gives a "Permission denied"-error. If I name the RCS

I always do it this way, except I don't use setuid (it is discouraged
in the RCS docs) but simply put all users for 1 project in a group and
make the RCS directory writable for this group. This at least creates
no problems with permissions. I think this group solution gives all
protection that you want and is safer than setuid.
--
______________________________________________________________________
Peter Mutsaers       |  Bunnik (Ut),     |      Quod licet bovi,

 
 
 

1. RCS, how to have a common RCS directory?

This should be a simple env var setting, or simple script, but I'm having
trouble with it, mainly because I don't really understand how RCS pairs
working files and RCS files.  

I want to have a group of people checkin and out to the same /RCS directory;
but not have to type the entire path name.  I thought i'd just append the
/RCS path to argv and pass it on to co, and ci, but am running into problems
I i specify multiple filenames, also if I specify or fail to specify the ,v
suffix.  I'd like to be sure that parse.c and parse.c,v both get checked in
as parse.c,v.  I started doing a bunch of $argv[$n]:r  but it was getting to
messy.

I also looked at the RCSINIT env var, but didn't see how it would help.
Can someone straigten me out, or point me to a good reference?  I've read
the RCS-SCCS section of the faq, and chased down the papers on cvs
referenced there, but, again didn't get a satisfactory understanding.

Thanks,

John
--
_________________________________________________________________
Office phone: 503-737-5583 (Batcheller 349);home: 503-757-8772
Office mail:  303 Dearborn Hall, OSU, Corvallis, OR  97331
_________________________________________________________________

2. newbie Q: about screen resolution in X

3. Announce: CS-RCS V2.0 -- Share RCS Files on UNIX and Windows

4. installing xfree86 3.3.6 (segmentation fault)

5. trying to print out RCS's rcs.ms file

6. LOW INVESTMENT OPPORTUNITY TO MAKE A LOT OF MONEY!!! READ ON!!!

7. + RCS + oops, I can't check-in after a rcs -u command

8. Recompilation of libc5.4.46

9. makedepend on an RCS controlled directory

10. RCS checkout file to a specific directory

11. ANNOUNCE: CS-RCS (Share common files on UNIX and Windows)

12. RCS and binary file versioning - Does this work??

13. RCS ci doesn't work