CVS

The LDP is in the process of providing CVS access to authors. There are a few good reasons for using CVS:

  1. CVS will keep an off-site backup of your documents. In the event that you hand over a document to another author, they can just retrieve the document from CVS and continue on. In the event you need to go back to a previous version of a document, you can retrieve it as well.

  2. It's great if you have many people working on the same document. You can have CVS tell you what changes were made while you were editing your copy by another author, and integrate those changes in.

  3. Keeps a log of what changes were made. These logs (and a date stamp) can be placed automatically inside the document when you use some special tags that get processed before the SGML processor.

  4. Can provide for a way for a program to automatically update the LDP web site with new documentation as it's written and submitted. This is not in place yet, but is a potential goal.

If you're completely new to CVS, there are a few web pages you may want to look at which can help you out:

Getting a CVS account

First you'll need to get an account at the LDP's CVS Repository. This is pretty much the root directory that is used by CVS, with various projects (HOWTOs, mini HOWTOs, etc.) created as subdirectories of that.

You will need to create a hashed password and userid for your account. The hashed password allows you to send an encrypted password to the CVS group without them needing to know your password. You can do this with the following command, from bash (or sh):

$ echo put_your_password_here | perl -e "print crypt(<>, join '',('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]),\"\n\"" 
  

Take the output of this command, and send it with your proposed userid to cvsadmin@cvslist.linuxdoc.org. Your unique CVSROOT will be created and you'll get an e-mail with a response. When you get your response, log into your CVSROOT and make sure everything is set up properly:

$ export CVSROOT=:pserver:your_userid@cvs.linuxdoc.org:/cvsroot
$ cvs -d $CVSROOT login 
  

(Replace the CVSROOT with what you were sent in the response e-mail).

You will be asked for your password, and then given access to the CVS Repository in read-write mode. Once you've used cvs login once and have been given access to the system, your password is stored in .cvsroot and you will not have to use cvs login again. Just set the CVSROOT and continue on. You can get the entire linuxdoc repository with this command:

$ cvs get LDP
  

Or you can get the SGML source for your own document with these commands:

$ cvs get howto/YOUR-HOWTO.sgml
$ cvs get minihowto/YOURDOC.sgml
  

Also available is The Commit List, which is an e-mail sent for each change anywhere in the repository. Note that this is a high-volume list. You can subscribe by sending an empty e-mail to commits-subscribe@cvslist.linuxdoc.org. You can unsubscribe by sending an empty e-mail to commits-unsubscribe@cvslist.linuxdoc.org.

Other CVS repository notes

Anonymous CVS access

Anonymous CVS access (read-only) is available:

$ cvs -d :pserver:cvs@anoncvs.linuxdoc.org:/cvsroot login 
   

As a password, use cvs. You can then get linuxdoc modules as above. Note that changes to the anoncvs site may be a half an hour behind the main site.

CVS Files via web

You can access the CVS repository via the web at http://cvsweb.linuxdoc.org/index.cgi/linuxdoc.

Graphical access to CVS

There are graphical interfaces to CVS, and you can get a list of them at http://freshmeat.net/appindex. Search for CVS.

Updating files and CVS

CVS has a special tag that you can use to automatically insert the date and version directly into the document. This is called $Id$. By including this tag in your document, you can have that automatically change each time you change the file, allowing the revision mark to increment each time.

When you're ready to upload changes to the CVS server, use the command cvs ci -m "comment" YOUR-HOWTO.sgml. The -m "comment" isn't necessary, but if you don't include it, you'll be brought into the editor (usually vi, or whatever your EDITOR environment variable is) and be given the chance to add a comment about the changes.

You can follow more of the CVS discussion on the ldp-discuss list. For the time being, LDP submissions should still be sent to ldp-submit.