C.2. Administration Questions
The repository administrator has a range of problems, from installation and configuration, to security, to ensuring the distribution of committed files. Answers here range from upgrade problems to moving a repository.
C.2.1. General Administration
The fundamentals of administration include installation, configuration, and upgrades. If you don't get those right, you won't get anywhere.
C.2.1.1. How do I install and configure CVS?
There are instructions and examples in Chapters 2 and 6. If you're after a quick and easy installation, use Chapter 2.
C.2.1.2. Will upgrading cause me any problems?
In most cases, no. If you are upgrading across the changeover in the scripting files (version 1.12.6), you will start to get deprecation warnings about the change in the scripting files. See the section "Running Scripts" in Chapter 7 for information on getting rid of those warnings.
C.2.1.3. How can I automatically create a changelog from CVS?
There are a variety of changelog generators in Appendix B in the section "Logging Tools."
C.2.1.4. How do I export a current copy automatically when files are committed?
The section in Chapter 7 titled "The loginfo File," has an example of exporting automatically. The process involves including the export command in the loginfo file, making sure it runs in the background.
C.2.2. Permissions and Security
Permissions are one thing you must get right, especially if you're protecting important secrets, or are a target for the immature or the criminal. This section answers issues from access control lists to pserver passwords.
C.2.2.1. How can I manage CVS file permissions?
See "Securing Your Projects" in Chapter 6.
C.2.2.2. How do I get access control for CVS?
There is a cvs_acls plugin explained in Appendix B that provides this.
C.2.2.3. How do I prevent my users from deleting my repository?
See "Securing Your Projects" in Chapter 6, but be aware that ideally the only access that untrusted users have to the server is via the connection that leads straight to CVS.
C.2.2.4. How do I let multiple users use the same files?
The trick is to use group ownership of the relevant files, which is explained in "Securing Your Projects" in Chapter 6.
C.2.2.5. How do I fix permission denied problems?
Either the permissions are incorrect (see "Securing Your Projects" in Chapter 6), or there is a stale lock file (see "Clearing Locks" in Chapter 6).
C.2.2.6. How do I clear file locks?
See "Clearing Locks" in Chapter 6, or, if that is the wrong type of lock, read "Reserving a File" in Chapter 5.
C.2.2.7. How do I set up pserver?
There is an explanation and examples in Chapter 8. Be sure to read both "The pserver Access Method" and "Using inetd with gserver, kserver, and pserver."
C.2.2.8. How do I change pserver passwords?
The pserver passwords can be set or changed only by the repository administrator. The method is explained in "The pserver Access Method," in Chapter 8.
The repository is the most important element of CVS, and the simplest way to handle it is to have a single repository that never changes and is never moved. But that's boring. Here are some answers for those of us with interesting repositories.
C.2.3.1. How do I rename a repository?
Just use the Unix mv command to rename the repository, and check your inetd configuration for references to the old repository. All your users must commit and release beforehand and check out again afterwards, or edit their CVS/Root files in their sandboxes.
C.2.3.2. How do I maintain a repository on Samba/NTFS/etc.?
The experience of most people seems to be that it doesn't work reliably, and it's almost certain to fail if the filesystem is a caching filesystem. If you choose to try, check the archives of the info-cvs mailing list at http://lists.gnu.org/archive/html/info-cvs/ for the experiences of others who've tried.
C.2.3.3. How do I run multiple repositories from one pserver/kserver/gserver invocation?
Call the server with multiple allow-root options. See "Using inetd with gserver, kserver, and pserver" in Chapter 8.
C.2.3.4. How do I make an anonymous, read-only repository?
See the note on read-only anonymous access in "Project Directories" in Chapter 6.
C.2.3.5. How do I make several anonymous, read-only repositories?
Combine the information in the section "Using inetd with gserver, kserver, and pserver" in Chapter 8 with the information in the note in "Project Directories" in Chapter 6.
C.2.3.6. How do I run multiple projects from one repository?
This is answered in "Project Directories" in Chapter 6.
C.2.3.7. How do I make multiple repositories with the same project information? How do I synchronize multiple CVS repositories?
These are answered in "Distributed Repositories" in Chapter 6.
C.2.3.8. How do I move a repository from one server to another?
The repository is a collection of ordinary files, and can be moved with your favorite copy programrsync or scp are the ones I would normally use. Also read "Backing Up a Repository" in Chapter 6.
You must first find a way to prevent your users from connecting to the repository while you move it (freezing the repository will work, as will disabling connections). If the hostname will be changing, you should probably have your users release their sandboxes before the move and check out fresh ones afterward.
C.2.4. Final Questions
These are the last two questions in the book. One is answered, the otherwell, you'll see.
C.2.4.1. How do I get off the mailing list?
Go to the list information page at http://lists.nongnu.org/mailman/listinfo/info-cvs and follow the instructions at the bottom of the page.
C.2.4.2. How do I make money fast?
For an answer to this question, send $100 or the equivalent in local currency, in cash, no cheques or money orders, to. . . .