[cvsnt] Re: 2.0.46 newbie install questions
Oliver Giesen
ogware at gmx.net
Mon Jun 28 13:48:56 BST 2004
Ann Lynnworth wrote:
> Question 1.
> Is there a reason the examples put the repository root in the root of
> the drive? I was thinking more along the lines of d:\AppsData\cvsrepo.
Actually I think most examples I've come across actually *dis*courage
repositories at the drive root. The reason for this however is outdated
by now. Some older CVSNT releases used to have problems with root-level
repositories but that's been fixed for a long time already. So, to put
it short, you are free to put your repositories wherever you like.
> Question 2.
> Am I supposed to start with nothing, then make a "repository",
Correct so far.
> then copy
> in my files (e.g. my project already exists and I want to know start
> using version control on it)?
No, no, no! Never just copy anything into your repository. In fact,
*never* do anything directly inside your repository! Just try to treat
it as a black box. Only ever access it via a cvs client.
In order to put an existing source tree under version control, use the
import command. If there are binary files (or Unicode or whatever kind
of files that have special storage requirements) in your tree you should
set up CVSWRAPPERS for them (just search the manual for that term and
you'll see what I mean), either temporarily via either the import
commandline (e.g. -W "*.exe -k 'b'") or a CVSWRAPPERS environment
variable or by permanently setting up a cvswrappers file in the CVSROOT
module of your repository (again, not by editing it directly in the
repository, but by checking out CVSROOT, then editing the file, then
committing it).
> I have listed 2 repositories through the CVSNT control panel applet.
> /AppsData/cvsrepo = d:\AppsData\cvsrepo
> /AppsData/cvsrepo/WebHubDemos = d:\AppsData\cvsrepo\WebHubDemos
Don't nest repositories. It will lead to grief sooner or later. Probably
sooner. Furthermore, you should rethink whether you really need multiple
repositories. Most of the time it's better to have just one repository
with multiple modules inside it.
> I have CVSROOT environment variable set to d:\AppsData\cvsrepo.
This will probably work most of the time but it's generally agreed upon
that it's safer to use a proper CVSROOT even for local access,
especially on a server where there *could* be other users accessing the
repository at the same time. By using the above CVSROOT string you are
effectively bypassing the server as by omitting the protocol prefix CVS
assumes :local: which basically lets the client act as a server in its
own right - thus you'd effectively have two servers serving the same
repository simultaneously. Better use something like
:sspi:localhost:d:/Appsdata/cvsrepo instead (better yet: define an alias
name for your repository using the CVSNT control panel applet and
shorten that to: :sspi:localhost:/cvsrepo).
Also note that setting the CVSROOT variable on the server is not
strictly required. It's only used when you run commands on the
commandline directly on the server machine. Most of the time however,
you will probably be accessing the server from a remote client and
that's where you should set the environment variable (and even there
it's not required - just convenient - it's rarely needed and even if it
is there are other ways to specify it, e.g. directly on the commandline).
> Question 3.
> What is a module?
Most commonly "module" refers to a folder inside a repository,
especially a top-level folder, i.e. a folder that you could checkout
without specifying any further path elements. More generally, in many
docs a "module" is pretty much anything you could specify on the right
hand side of a Checkout command. Besides folders, this includes
individual files as well as "virtual" modules, i.e. modules that have no
direct physical representation in the repository's file hierarchy, but
which are instead only defined by an entry in the repository's modules file.
> What is a module list?
No idea. Never heard of that term...
> Question 4.
> How do I encrypt a password for use with pserver?
Just use the cvs passwd command to add/change users. It will encrypt the
entered password automatically. Better yet, don't specify passwords
explicitly at all and simply map cvs users to real Windows user accounts.
> Question 5.
> Do I need the locking service??
It's recommended nowadays, yes. Otherwise you are bound to get the
occasional dangling file locks after crashes (but then again CVSNT
doesn't really crash that often - actually it hasn't crashed ever on us
for several years). Most people used to run scheduled jobs for clearing
those up nightly.
> It was running, and now it won't
> anymore, perhaps because I set the main CVSNT service to run under a
> user account other than LocalSystem. (Was that a bad idea?
Maybe. Don't know for sure. Probably...
> I thought it
> was a good idea.)
Why?
> (I will want to be able to lock files upon checkout, so I assume I
> need this service).
That's not what this service does. It makes sure that no two users could
access a repository file at the same time in order to ensure data
integrity. These "locks" are only temporary. Without the lockserver, CVS
would handle this by writing a so-called lockfile into the directory
that a user was currently accessing and deleting it when the user's
operation was done. If another client process found such a lock file in
a repository folder it would wait for it to disappear before it carried
on with its own operation. As I mentioned before, this had the drawback
that these lockfiles had a tendency to "hang around" for various
reasons, effectively leaving the directory they were in inaccessible to
all clients. The idea of the lockserver is that it manages these locks
completely in memory, therefore, once the service or the whole machine
dies, the locks do, too.
As for locking files upon checkout, you might want to reconsider this.
CVS (i.e. *Concurrent* Versions System) was built specifically to
overcome the locking paradigm of its RCS legacy. For the few cases where
exclusive access does make sense (i.e. when files could not be
automatically merged, e.g. binary files) CVSNT uses the Reserved Edit
concept instead which is less restrictive and counterproductive. Just
search the archives for details.
> Question 6.
> Where are the instructions for getting sserver going?? So far I have
> only founds notes that it doesn't work very well, but no instructions on
> how to configure it. For example, does it share the passwd file that
> applies for use with pserver, or not?
Sorry, afraid I couldn't help you with that one due to lack of
experience with it.
What exactly are the reasons you want to use :sserver: though? Unless
you need to access the repository from non-Windows clients, :sspi: is
usually the more natural choice for a server running on Windows and
leagues easier to setup as well I think...
Hope this helps.
--
Oliver
---- ------------------
JID: ogiesen at jabber.org
ICQ: 18777742 (http://wwp.icq.com/18777742)
More information about the cvsnt
mailing list