[cvsnt] Re: Does CVS support Linked files?

Bo Berglund bo.berglund at telia.com
Sun Oct 23 10:11:09 BST 2005


On Fri, 21 Oct 2005 08:49:18 +1000, "Brian Post" <BPost at 80-20.com>
wrote:

>Client & Server CVSNT 2.5.02 (Servalan) Build 2088 running on Windows XP
>
>professional with the server on it's own XP pro.
>
>I looked through the news groups & found you can link modules (Linked
>folders as per SourceSafe) but couldn't find any mention of linked
>files.
>
>I am guessing that I should use the modules file but I am not sure how I
>would set it.
>
>$/Test/Web/common.asp
>$/Test/RAA/common.asp
>
>Would I specify the following for link RAA/common.asp to Web/common.asp?

I don't really understand what you mean by "linked" here, but maybe
explaining what CVS does can help you figure out what you need
yourself...
CVS manages files under source control in a folder/file structure on
the server that mimics the client development structure. Each project
file has a corresponding file in the server called an RCS file. This
file conains *all* revision data for the file so it is a complete
history of all revisions for this file.
Now, when a client checks out files from a CVS server there is
*always* a shadow folder created on the client in each checked out
project folder. This shadow folder is named CVS and it contains data
concerning the project files in the folder above itself.

Specifically the CVS foledr contains three standard files:
Root - this file stores info from which server checkout was done
Repository - a misnomer, it contains the server side folder name
Entries - contains a list of all checked out files and data on them

There are also a few other files involved especially when the server
is CVSNT, but you can disregard these for the moment.

Now, the Entries file has a list of file names with revision,
timestamp etc, but *no path* info.
The Repository file contains a single line outlining from which
physical folder on the server the file has been checked out.
Root contains the base repository on the server that the files are
coming from.
So to find out where on the server the files come from you have to add
together the info from Root, Repository and Entries.

As you can see a folder on the client side can only contain files that
originate from a single folder on the server, so having multiple
source folders on the server for different files is not at all
possible.
Is this what you wanted to accomplish with the "linked" files?
If so then you have to look for something else than CVS.

With the modules file on the server you are able to collect a number
of diverse server side folders into a common "project" to check out
such that the checkout on the client does not mimic the folder
structure on the server.
For example you can get a selected set of a server side folder
Common/Basic/Asp into a folder on the client named CommonAsp if you
like. You can create a lot of such folders and put them directly below
your project checkout folder so that for the user they appear to
belong to this project but in reality they are common to many
projects.
But still on checkout CVS will create the CVS subfolders and store the
*physical server side* address info in the Root, Repository and
Entries files so that even though the client folder name is CommonAsp
the reference is going to Common/Basic/Asp.


/Bo
(Bo Berglund, developer in Sweden)



More information about the cvsnt mailing list