\unnumbchapentry {About this manual}{1} \unnumbsecentry{Checklist for the impatient reader}{1} \unnumbsecentry{Credits}{2} \unnumbsecentry{BUGS}{2} \chapentry {What is CVS?}{1}{3} \unnumbsecentry{CVS is not\dots{}}{3} \chapentry {Basic concepts}{2}{7} \secentry {Revision numbers}{2}{1}{7} \secentry {Versions, revisions and releases}{2}{2}{8} \chapentry {A sample session}{3}{9} \secentry {Getting the source}{3}{1}{9} \secentry {Committing your changes}{3}{2}{9} \secentry {Cleaning up}{3}{3}{10} \secentry {Viewing differences}{3}{4}{10} \chapentry {The Repository}{4}{13} \secentry {Telling CVS where your repository is}{4}{1}{13} \secentry {How data is stored in the repository}{4}{2}{14} \subsecentry {Where files are stored within the repository}{4}{2}{1}{14} \subsecentry {File permissions}{4}{2}{2}{15} \secentry {The administrative files}{4}{3}{16} \subsecentry {Editing administrative files}{4}{3}{1}{16} \secentry {Multiple repositories}{4}{4}{17} \secentry {Creating a repository}{4}{5}{17} \secentry {Remote repositories}{4}{6}{17} \subsecentry {Connecting with rsh}{4}{6}{1}{18} \subsecentry {Direct connection with password authentication}{4}{6}{2}{19} \subsubsecentry {Setting up the server for password authentication} {4}{6}{2}{1} {19} \subsubsecentry {Using the client with password authentication} {4}{6}{2}{2} {20} \subsubsecentry {Security considerations with password authentication} {4}{6}{2}{3} {21} \subsecentry {Direct connection with kerberos}{4}{6}{3}{21} \chapentry {Starting a project with CVS}{5}{23} \secentry {Setting up the files}{5}{1}{23} \subsecentry {Creating a directory tree from a number of files}{5}{1}{1}{23} \subsecentry {Creating Files From Other Version Control Systems}{5}{1}{2}{24} \subsecentry {Creating a directory tree from scratch}{5}{1}{3}{24} \secentry {Defining the module}{5}{2}{25} \chapentry {Multiple developers}{6}{27} \secentry {File status}{6}{1}{27} \secentry {Bringing a file up to date}{6}{2}{28} \secentry {Conflicts example}{6}{3}{28} \secentry {Informing others about commits}{6}{4}{31} \secentry {Several developers simultaneously attempting to run CVS}{6}{5}{31} \secentry {Mechanisms to track who is editing files}{6}{6}{32} \subsecentry {Telling CVS to watch certain files}{6}{6}{1}{32} \subsecentry {Telling CVS to notify you}{6}{6}{2}{33} \subsecentry {How to edit a file which is being watched}{6}{6}{3}{34} \subsecentry {Information about who is watching and editing}{6}{6}{4}{35} \subsecentry {Using watches with old versions of CVS}{6}{6}{5}{35} \secentry {Choosing between reserved or unreserved checkouts}{6}{7}{35} \chapentry {Branches}{7}{37} \secentry {Tags--Symbolic revisions}{7}{1}{37} \secentry {What branches are good for}{7}{2}{39} \secentry {Creating a branch}{7}{3}{39} \secentry {Sticky tags}{7}{4}{40} \chapentry {Merging}{8}{43} \secentry {Merging an entire branch}{8}{1}{43} \secentry {Merging from a branch several times}{8}{2}{44} \secentry {Merging differences between any two revisions}{8}{3}{45} \secentry {Merging can add or remove files}{8}{4}{45} \chapentry {Recursive behavior}{9}{47} \chapentry {Adding files to a directory}{10}{49} \chapentry {Removing files from a module}{11}{51} \chapentry {Tracking third-party sources}{12}{53} \secentry {Importing a module for the first time}{12}{1}{53} \secentry {Updating a module with the import command}{12}{2}{53} \secentry {How to handle binary files with cvs import}{12}{3}{54} \chapentry {Moving and renaming files}{13}{55} \secentry {The Normal way to Rename}{13}{1}{55} \secentry {Moving the history file}{13}{2}{55} \secentry {Copying the history file}{13}{3}{56} \chapentry {Moving and renaming directories}{14}{57} \chapentry {History browsing}{15}{59} \secentry {Log messages}{15}{1}{59} \secentry {The history database}{15}{2}{59} \secentry {User-defined logging}{15}{3}{59} \secentry {Annotate command}{15}{4}{59} \chapentry {Keyword substitution}{16}{61} \secentry {RCS Keywords}{16}{1}{61} \secentry {Using keywords}{16}{2}{61} \secentry {Avoiding substitution}{16}{3}{62} \secentry {Substitution modes}{16}{4}{63} \secentry {Problems with the $Log$ keyword.}{16}{5}{63} \chapentry {Handling binary files}{17}{65} \chapentry {Revision management}{18}{67} \secentry {When to commit?}{18}{1}{67} \chapentry {Reference manual for CVS commands}{Appendix{} \char65}{69} \secentry {Overall structure of CVS commands}{\char65}{1}{69} \secentry {Default options and the {\tt\char'176}/.cvsrc file}{\char65}{2}{69} \secentry {Global options}{\char65}{3}{70} \secentry {Common command options}{\char65}{4}{71} \secentry {admin---Administration front end for rcs}{\char65}{5}{73} \subsecentry {admin options}{\char65}{5}{1}{74} \subsecentry {admin examples}{\char65}{5}{2}{76} \subsubsecentry{Outdating is dangerous}{\char65} {5}{2}{1}{76} \subsubsecentry{Comment leaders}{\char65} {5}{2}{2}{76} \secentry {checkout---Check out sources for editing}{\char65}{6}{76} \subsecentry {checkout options}{\char65}{6}{1}{77} \subsecentry {checkout examples}{\char65}{6}{2}{78} \secentry {commit---Check files into the repository}{\char65}{7}{78} \subsecentry {commit options}{\char65}{7}{1}{79} \subsecentry {commit examples}{\char65}{7}{2}{80} \subsubsecentry{New major release number}{\char65} {7}{2}{1}{80} \subsubsecentry{Committing to a branch}{\char65} {7}{2}{2}{80} \subsubsecentry{Creating the branch after editing}{\char65} {7}{2}{3}{81} \secentry {diff---Run diffs between revisions}{\char65}{8}{81} \subsecentry {diff options}{\char65}{8}{1}{82} \subsecentry {diff examples}{\char65}{8}{2}{82} \secentry {export---Export sources from CVS, similar to checkout}{\char65}{9}{83} \subsecentry {export options}{\char65}{9}{1}{83} \secentry {history---Show status of files and users}{\char65}{10}{84} \subsecentry {history options}{\char65}{10}{1}{84} \secentry {import---Import sources into CVS, using vendor branches}{\char65}{11}{85} \subsecentry {import options}{\char65}{11}{1}{86} \subsecentry {import output}{\char65}{11}{2}{86} \subsecentry {import examples}{\char65}{11}{3}{87} \secentry {log---Print out log information for files}{\char65}{12}{87} \subsecentry {log options}{\char65}{12}{1}{87} \subsecentry {log examples}{\char65}{12}{2}{88} \secentry {rdiff---'patch' format diffs between releases}{\char65}{13}{88} \subsecentry {rdiff options}{\char65}{13}{1}{89} \subsecentry {rdiff examples}{\char65}{13}{2}{89} \secentry {release---Indicate that a Module is no longer in use}{\char65}{14}{90} \subsecentry {release options}{\char65}{14}{1}{90} \subsecentry {release output}{\char65}{14}{2}{90} \subsecentry {release examples}{\char65}{14}{3}{91} \secentry {rtag---Add a symbolic tag to a module}{\char65}{15}{91} \subsecentry {rtag options}{\char65}{15}{1}{92} \secentry {status---Display status information on checked out files}{\char65}{16}{92} \subsecentry {status options}{\char65}{16}{1}{93} \secentry {tag---Add a symbolic tag to checked out versions of files}{\char65}{17}{93} \subsecentry {tag options}{\char65}{17}{1}{93} \secentry {update---Bring work tree in sync with repository}{\char65}{18}{94} \subsecentry {update options}{\char65}{18}{1}{94} \subsecentry {update output}{\char65}{18}{2}{95} \subsecentry {update examples}{\char65}{18}{3}{96} \chapentry {Reference manual for the Administrative files}{Appendix{} \char66}{97} \secentry {The modules file}{\char66}{1}{97} \secentry {The cvswrappers file}{\char66}{2}{98} \secentry {The commit support files}{\char66}{3}{99} \subsecentry {The common syntax}{\char66}{3}{1}{99} \secentry {Commitinfo}{\char66}{4}{100} \secentry {Editinfo}{\char66}{5}{100} \subsecentry {Editinfo example}{\char66}{5}{1}{101} \secentry {Loginfo}{\char66}{6}{102} \subsecentry {Loginfo example}{\char66}{6}{1}{102} \subsecentry {Keeping a checked out copy}{\char66}{6}{2}{103} \secentry {Rcsinfo}{\char66}{7}{103} \secentry {Ignoring files via cvsignore}{\char66}{8}{103} \secentry {The history file}{\char66}{9}{104} \secentry {Expansions in administrative files}{\char66}{10}{104} \chapentry {All environment variables which affect CVS}{Appendix{} \char67}{107} \chapentry {Troubleshooting}{Appendix{} \char68}{109} \secentry {Magic branch numbers}{\char68}{1}{109} \chapentry {GNU GENERAL PUBLIC LICENSE}{Appendix{} \char69}{111} \unnumbchapentry {Index}{113}