info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems using CVS transparently


From: Pierre Asselin
Subject: Re: Problems using CVS transparently
Date: 3 Apr 2002 23:25:01 -0500

In <address@hidden> Sonam Chauhan <address@hidden> writes:

>PROBLEM #1: CVS usage must be transparent. This means no 'CVS'
>meta-directories are allowed [ ... ]

Give up now before you get an ulcer?

>SOLUTION #1: The way I solved this problem (I think) was by creating
>a parallel source controlled directory hard linked to the development
>hierarchy.

Does that work?  CVS has a way of ignoring files with link count
greater than 1.


>PROBLEM #2: How to add large numbers of files and directories to
>an existing cvs module.

I use find, on the fly.  If there are new directories,

    $ find . -type d ! -name CVS -print | xargs cvs add

and ignore errors for directories that are already added.  For the files,

    $ find . -type d -name CVS -prune -o -type f -print |\
    > xargs cvs add

and also ignore double-add errors.

>I've also hit what seems to be a bug in CVS
>while trying the script the addition of some directories. cvs tells
>me they've already been added. For e.g. it says:
>    cvs [add aborted]: there is a version in dir22/source already
>    exists The 'dir22/source' directory also has a CVS sub-directory.
>But doing a cvs checkout does not create the dir22/source directory.
>Am I doing something wrong?

Are there any files in dir22/source, and if not, are you pruning empty
directories?  (the -P option).


>PROBLEM #3: How can I detect and commit changes to the development
>codebase when making a release?

cvs -nq update .

>As described in problem #2, new
>directories may be added or deleted arbitrarily by the development
>environment.

General impression:  you can have your development environment or you
can have CVS, and you can't have both.

Maybe you should treat your dev environment as a virtual vendor.
Export trees, not checkout, to use in development.  When ready,
import them back, not commit, into CVS, as if you were releasing
a tarball to yourself.  This is an extremely clumsy way to use CVS,
turning it into a glorified closet.  It also means that you develop
without the benefit of a source-controlled environment:  no cvs diff,
no cvs update, etc.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]