[This is the result of running "cvs -q diff -c -r 1.8 -r 1.15 FAQ" on the CVS repository. I made two hand edits: (1) Remove changes to the introductory paragraph (which isn't part of Molli's FAQ-O-Matic anyway), and (2) remove a whitespace diff.] Index: FAQ =================================================================== RCS file: /home2/cvsroot/ccvs/FAQ,v retrieving revision 1.8 retrieving revision 1.15 diff -c -r1.8 -r1.15 *** FAQ 1997/09/06 02:06:00 1.8 --- FAQ 1997/12/16 13:25:37 1.15 *************** *** 1043,1090 **** -------------------------------------------------------------------- - You can avoid digging into RCS revision numbers - (executing "update -r " on each file) by - trying one of these: - - o Use non-branch tags as you normally would. - Non-branch tags attach to specific revisions, so - a "tag " command would mark the revisions - you have in your working directory, which are on - your branch. If you need to retrieve them, use - "update -r " - - Doing this overrides the sticky - attached to your working directory with a - non-branch tag, which means you won't be able to - commit until you again move forward to the end of - the branch with "update -r ". - - o Use the "update -r :" trick. - - This is almost like using the '-D' option, but it - looks for revisions extant on only along - the given branch. - - As in #1, you can't commit to this kind of - working area, because it has a sticky date - referring to revisions in the middle of a branch. - - o You can branch a branch. - - If you add a branch tag to file in a working - directory that was checked out on a branch, you - will branch the branch. This works just fine, - though you'll have to play some games to merge - everything back together again. You'll also - create 6-part revision numbers. (They'll be - 8-part revision numbers if you branch a branch - that started out with some unmodified files on - the Vendor branch. Think about it. How does - revision 1.2.4.2.4.2.2.1 grab you?) ! Last modified: 6/13/1997 17. Once I've found the files I want, how do I start changing them? I keep getting ---------------------------------------------------------------------------------- --- 1049,1101 ---- -------------------------------------------------------------------- ! You can avoid digging into RCS revision numbers (executing "update ! -r (rev)" on each file) by trying one of these: ! ! Use non-branch tags as you normally would. Non-branch tags ! attach to specific revisions, so a "tag (tag)" command would ! mark the revisions you have in your working directory, which ! are on your branch. If you need to retrieve them, use "update ! -r (non-branch-tag)" ! ! Doing this overrides the sticky (branch-tag) attached to your ! working directory with a non-branch tag, which means you won't ! be able to commit until you again move forward to the end of ! the branch with "update -r (branch-tag)". ! ! Use the "update -r (branch-tag):(date)" trick. ! ! This is almost like using the '-D' option, but it looks for ! revisions extant on (date) only along the given branch. ! ! As in #1, you can't commit to this kind of working area, ! because it has a sticky date referring to revisions in the ! middle of a branch. ! ! [comment from the audience: You are dreaming.. ! this does not work.. try it, you get ! No such tag: "MYTAG:May 1" ! or similar. I wish it did because I need it. julian@whistle.com] ! ! ! You can branch a branch. ! ! If you add a branch tag to file in a working directory that was ! checked out on a branch, you will branch the branch. This ! works just fine, though you'll have to play some games to merge ! everything back together again. You'll also create 6-part ! revision numbers. (They'll be 8-part revision numbers if you ! branch a branch that started out with some unmodified files on ! the Vendor branch. Think about it. How does revision ! 1.2.4.2.4.2.2.1 grab you?) ! ! ! (fixed formatting, kingdon@cyclic.com) ! ! ! Last modified: 9/8/1997 17. Once I've found the files I want, how do I start changing them? I keep getting ---------------------------------------------------------------------------------- *************** *** 2227,2236 **** Last modified: 6/13/1997 ! 2. I use OS/2 and/or DOS. Is there anything I need to know? ! ------------------------------------------------------------ You can share RCS files between Unix and DOS while avoiding the MS-DOS file name limits by setting your RCSINIT environment variable to --- 2238,2258 ---- Last modified: 6/13/1997 ! 2. I use OS/2 and/or DOS and/or Windows. Is there anything I need to know? ! --------------------------------------------------------------------------- ! ! ! When using a local repository, be sure to specify ! the local access method or CVS will interpret the ! drive letter as a remote host name due to the : ! following it: ! ! WRONG: CVSROOT=C:\SRC\CVSROOT + RIGHT: CVSROOT=:local:C:\SRC\CVSROOT + (larry.jones@sdrc.com) + You can share RCS files between Unix and DOS while avoiding the MS-DOS file name limits by setting your RCSINIT environment variable to *************** *** 2239,2246 **** ",v" will still be found if there is no matching file in the same directory without the ",v". ! Erik van Linstee ! offers an OS/2 and a DOS port of CVS 1.3 in: ftp.informatik.tu-muenchen.de:/pub/comp/os/os2/gnu/devtools or ftp.rrzn.uni-hannover.de:/pub/os2-local --- 2261,2268 ---- ",v" will still be found if there is no matching file in the same directory without the ",v". ! Erik van Linstee offers an OS/2 and a DOS port of ! CVS 1.3 in: ftp.informatik.tu-muenchen.de:/pub/comp/os/os2/gnu/devtools or ftp.rrzn.uni-hannover.de:/pub/os2-local *************** *** 2264,2271 **** [[Updates?]]. ! Last modified: 6/13/1997 3. I use SCO Unix. Is there anything I need to know? ----------------------------------------------------- --- 2286,2295 ---- [[Updates?]]. ! + Last modified: 9/22/1997 + 3. I use SCO Unix. Is there anything I need to know? ----------------------------------------------------- *************** *** 2415,2450 **** --------------------------------------------- - GIC provides a graphical user interface to the - Concurrent Version System (CVS), a powerful - revision control system. GIC is implemented in - the Tcl/Tk programming language and is intended - to augment the sometimes cumbersome CVS command - line interface. Novices should find GIC to be - much easier to learn than the CVS command line. - - While GIC is easy to use, it does not contain any - documentation on CVS. Users of GIC must first - learn the concepts of CVS such as modules and - merging, as well as the simple functions, such as - committing and updating. The CVS manual page and - the README file are good places to look. - - contact - - David Marwood - marwood@cpsc.ucalgary.ca - [Extracted from an announcement by David Marwood.] ! GIC can be obtained by anonymous ftp to (on the ! date of this FAQ) ! ftp.cpsc.ucalgary.ca:/pub/users/marwood/gic-1.1.tar.Z ! ftp.cpsc.ucalgary.ca:/pub/users/marwood/gic-1.2b1.tar.Z ! Last modified: 6/13/1997 3. What is CAVEMAN? -------------------- --- 2439,2460 ---- --------------------------------------------- ! GIC provides a graphical user interface to the Concurrent Version ! System (CVS), a powerful revision control system. GIC is ! implemented in the Tcl/Tk programming language and is intended to ! augment the sometimes cumbersome CVS command line interface. ! ! Note that according to the official GIC page at ! http://www.cpsc.ucalgary.ca/redirect/grouplab/projects/gic/ ! GIC is no longer being maintained and tkCVS is recommended ! instead. For more on tkCVS, see http://www.cyclic.com/tkcvs/ ! kingdon@cyclic.com ! Last modified: 9/6/1997 3. What is CAVEMAN? -------------------- *************** *** 2503,2510 **** executing it. The cvsinit program will create a short modules ! file containing the module named "CVSROOT". To to ! your work directory and type: cvs checkout CVSROOT --- 2513,2520 ---- executing it. The cvsinit program will create a short modules ! file containing the module named "CVSROOT". ! Change to your work directory and type: cvs checkout CVSROOT *************** *** 2541,2547 **** comfortable. ! Last modified: 6/13/1997 2. What are those files in $CVSROOT/CVSROOT? --------------------------------------------- --- 2551,2557 ---- comfortable. ! Last modified: 11/7/1997 2. What are those files in $CVSROOT/CVSROOT? --------------------------------------------- *************** *** 3327,3358 **** --------------- ! If you configure RCS and CVS to use the GNU ! version of diff with the '-a' option, CVS and RCS ! will handle binary files. See section 4A for ! configuration info. ! ! You may also need to apply the '-ko' flag to the ! files to avoid expanding RCS keywords, which can ! be done via: ! ! cvs admin -ko filename ! ! The only real problem occurs when "cvs update" ! attempts to merge binary revisions committed ! elsewhere into a modified working file. This can ! be a particular problem if you are trying to use ! CVS on Frame or Interleaf (document processing ! systems) that produce non-text output. ! ! See 3C.8 for a way to serialize access to binary ! files. See 3A.8 for adding binary files, 3H.4 for ! importing binary files and 3B.4 for some more ! information about "admin". - Last modified: 6/13/1997 2. Can I edit the RCS (",v") files in the Repository? ------------------------------------------------------ --- 3337,3370 ---- --------------- ! First of all, if you want to use binary files, you should get RCS 5.7 ! and CVS 1.9 or later (earlier versions had some support, but there have been ! bug fixes). Secondly, follow the instructions for installing RCS very ! carefully (it is easy to get it installed so it works for everything ! except binary files). ! ! Then, specify 'cvs add -kb' instead of just 'cvs add' to add a binary ! file. If you want to set an existing file to binary, run 'cvs admin ! -kb' (and then check in a new copy of the file). Note that old ! versions of CVS used -ko instead of -kb for binary files, so if you ! see a reference to -ko in the context of binary files, you should ! think -kb instead. ! ! Of course when 'cvs update' finds that a merge is needed, it can't ! do this for binary files the same way as for text files. With the ! latest versions (e.g. CVS 1.9.14), it should be able to give you both ! versions and let you merge manually. Another approach is to ! run 'cvs admin -l' to lock files, as described in ! "How can I lock files while I'm working on them the way RCS does?" ! elsewhere in this FAQ. See also ! "Is there any way to import binary files?" and ! "How do I "add" a binary file?" elsewhere in this FAQ. + kingdon@cyclic.com + Last modified: 9/6/1997 + 2. Can I edit the RCS (",v") files in the Repository? ------------------------------------------------------ *************** *** 8219,8283 **** ------------------------------------------ - A "rename" or "per-directory" database has been - bandied about on the net for years. It is needed, - but it is a lot of work. - - CVS version 1.5 supports remote repository - access, but Paul - o Kunz has produced - another version (rCVS) that also runs remotely. - It is available for testing. - - On the host "preprint.slac.stanford.edu", you can - find: - - Paper: slacpubs/5000/slac-pub-5923.ps.Z ! This was for a conference in Sept, 1993, before ! first beta. ! On the host "ftp.slac.stanford.edu", you can ! find: ! Sources: pub/sources/rcvs-0.8.1.tar.Z - With the caveat that until version 1.0 is - available, rCVS should be considered an - unreliable Beta release, you are invited to grab - a copy and test it. ! [[Others?]] ! ! ! Last modified: 6/13/1997 5. I have some time and I'd like to help. What can I do for you? ----------------------------------------------------------------- ! You can review this document, correct errors and ! fill in any of the incomplete sections. ! You can add to the contrib area, which contains ! useful ways to use some of the programmable CVS ! facilities (loginfo, commitinfo) or ways of ! connecting to work environments (pcl-cvs). ! You could write a regression test suite. Or at ! least a scaffold into which we can drop tests. ! You can write specs for new features, fix bugs, ! review the man page or . . . ! [[Brian?]] ! [[Is there some way we can register someone as ! working on something or should we just stay in ! the "implement it and send it to me" mode?]] ! Last modified: 6/13/1997 Category: /Past__Future_/Professional_Support/ ++++++++++++++++++++++++++++++++++++++++++++++ --- 8231,8282 ---- ------------------------------------------ ! A "rename" or "per-directory" database has been bandied about on ! the net for years. Many of the goals of the rename database have ! been achieved by the so-called "death support" in recent versions of ! CVS (such as 1.9). For more information on what may remain to be ! done, see item #189 in the TODO file of a development version of CVS. ! ! CVS version 1.5 supports remote repository access, but Paul ! Kunz has produced another version ! (rCVS) that also runs remotely. Note that as far as I know there ! are no advantages to rCVS over the remote CVS in CVS 1.5 and later, ! and the rCVS user community has migrated to remote CVS. ! rCVS is *not* a multisite CVS (see item #186 in TODO for more on ! multisite). For more on rCVS, see ! ftp://ftp.slac.stanford.edu/software/rcvs ! kingdon@cyclic.com ! Last modified: 9/6/1997 5. I have some time and I'd like to help. What can I do for you? ----------------------------------------------------------------- ! You can review this document, correct errors and fill in any of ! the incomplete sections. ! You can write scripts or CVS add-ons and make them available by ! web/FTP/etc. ! You could work on the regression test suite (src/sanity.sh in the ! CVS source distribution). ! You can write specs for new features, fix bugs, review the ! documentation or . . . ! For more information, see the files HACKING and DEVEL-CVS in the ! CVS source distribution or ! http://www.cyclic.com/cyclic-pages/cvsdev.html ! kingdon@cyclic.com ! Last modified: 9/6/1997 Category: /Past__Future_/Professional_Support/ ++++++++++++++++++++++++++++++++++++++++++++++ *************** *** 8303,8420 **** 2. What is Cyclic Software doing with CVS? ------------------------------------------- - - Cyclic Software exists to provide support for - CVS. Here's a copy of their product line sheet: - - Cyclic Software - Standard Support - - Cyclic Software offers support contracts for CVS. - This includes: - - - * Full source, binaries, and documentation for - CVS, RCS, GNU diffutils, patch, and gzip -- that - is, CVS and everything it wants to run -- via FTP - or tape; - - - * guaranteed responses for bugs within 5 business - days; - - - * guaranteed fixes for reproducible bugs within - 10 business days. - - (By "reproducible bugs", we mean instances where - the software clearly does not behave as - documentation or reasonable expectations indicate - it should, and that we are able to reproduce this - misbehavior reliably. Naturally, we will make - every possible effort to reproduce the bugs you - report; our experience has been that it's usually - not difficult.) - - We charge a fixed fee for: - - - * one year - - - * one host type (hardware & operating system) - ! * twenty users at your site, with two of those ! users designated as "contacts" for CVS, to reduce ! communication problems. ! If the host type is not one we have access to for ! testing purposes, you can either lend us a ! machine of the appropriate type for the duration ! of the contract, or pay an additional fee ! up-front. We have access to Solaris, Irix, HP-UX, ! Linux and Ultrix. (This list is subject to ! change; contact us for details.) - If the above fee structure is not well-suited to - your organization, please say so. We're - interested in tailoring our services to be as - useful to you as possible. ! Training ! ! We offer on-site training in the use of CVS at a ! daily rate, plus expenses (inc. travel, ! accommodations). The classes target new and ! intermediate users of CVS; we feel advanced users ! benefit more from a written manual and the source ! code. ! ! Custom Enhancements ! ! We will implement enhancements to CVS or its ! documentation, and port CVS to new architectures. ! Our rates for this work depend on the amount of ! work to be done. ! ! We strongly prefer to work on enhancements ! suitable for incorporation into the general CVS ! release upon completion; we will help you design ! the enhancement in a way that makes this ! possible. ! ! Short-Term Consulting ! ! We will do short-term consulting at hourly rates. ! These rates are calculated to include the ! overhead of dealing in short time periods. ! Therefore, in sufficiently large projects, we ! recommend arranging a long-term support contract ! instead of dealing on an hourly basis. ! ! Anything Else ! ! Cyclic Software is interested in arranging ! contracts for work in other areas, to be produced ! as free software. Everything is negotiable. ! ! How To Contact Us ! ! (Email is preferred.) ! ! Email: Phone: +1 812 335 9023 ! Web: http://www.cyclic.com SnailMail: Cyclic ! Software ! ! P.O. Box 804 ! Bloomington, IN 47402-0804 ! USA ! ! Contributed by Jim Blandy ! ! ! Last modified: 6/13/1997 Category: /User_Tasks_/ +++++++++++++++++++++++ --- 8302,8316 ---- 2. What is Cyclic Software doing with CVS? ------------------------------------------- ! Cyclic Software exists to provide support for CVS. For details such ! as prices and what this covers, see http://www.cyclic.com or ask ! info@cyclic.com. ! kingdon@cyclic.com ! Last modified: 9/6/1997 Category: /User_Tasks_/ +++++++++++++++++++++++ *************** *** 10225,10237 **** -------------------------------------- ! Produced by AT&T. - [[Need more info here.]] - Last modified: 6/13/1997 - 11. How does CVS differ from PVCS? ----------------------------------- --- 10121,10151 ---- -------------------------------------- ! Produced by AT&T. Sablime uses SCCS as the ! underlying source code control system. It uses ! some other control system (called sbcs I think) ! for managing binary files. It uses lock, edit, ! comit, unlock mechanism. It has a motif based GUI ! and curses based GUI (that works only with ksh, ! not tcsh, or bash) to do more common tasks. It ! has even a command line interface. ! ! Changing source happens as a result of MR. A ! testing person or a developer assigns an MR ! (modification request) to a group of people. They ! are allowed to take out files under that MR and ! change them and check them back in. You can set ! up dependencies between and MR and do release ! management to say "I want the sources to include ! these MRs" etc. It is a reasonably good ! maintanance system. It is bit heavy weight ! though, and the interface is not too polished and ! does not work on windows (though that may have ! changed). rama@savera.com + Last modified: 12/12/1997 11. How does CVS differ from PVCS? ----------------------------------- *************** *** 10633,10728 **** The module idea is now a somewhat slippery concept that can be defined in two different ways: - o A module is an argument to "checkout". There are - three types: - - o An entry in the modules file. A "module" name as - described in 'B.' below. - - o A relative path to a directory or file in the - Repository. - - o A mixed-mode string of - "modulename/relative-path". Everything up to the - first slash ('/') is looked up as a module. The - relative path is appended to the directory - associated with the module name and the resulting - path is checked out as in #2 above. - - o A module is a unique (within the file) character - string in the first column of the modules file. - There are five types: - - o A name for a directory within the Repository that - allows you to ignore the parent directories above - it. - - Example: - - emacs gnu/emacs - - o A name for a subset of the files within such a - directory. - - Example: - - ls unix/bin Makefile ls.c - - The 2nd through Nth strings in the above can be - files, directories or module substitutions. No - relative paths. - - A module substitution occurs when you use a - '&module-name' reference. The module-name - referred to is logically substituted for the - '&module-name' string. - - o A relative pathname to a directory within the - Repository which, when checked out, creates an - image of part of the Repository structure in your - current directory. - - Example: - - gnu/emacs -o /bin/emacs.helper gnu/emacs - - The files checked out are exactly the same as the - files "checkout" would retrieve if the path - weren't even in the modules file. The only reason - to put this kind of relative pathname into the - modules file is to hook one of the helper - functions onto it. - - o A relative pathname to a single file within the - Repository which, when checked out, creates - something you probably don't want: It creates a - directory by the name of the file and puts the - file in it. - - Example: - - gnu/emacs/Makefile -o /bin/emacs.helper gnu/emacs - Makefile - - The file checked out is the same as what you - would get if you handed the relative pathname to - the "checkout" command. But it puts it in a - strange place. The only reason to do this is to - hook a helper function onto a specific file name. - - o An alias consisting of a list of any of the - above, including other aliases, plus exceptions. - - Example: - - my_work -a emacs !emacs/tests gnu/bison - unix/bin/ls.c - - The exception "!emacs/test" above is functionally - equivalent to specifying "!emacs/tests" on the - "checkout" command line. - Another way to look at it is that the modules file is simply another way to "name" files. The hierarchical directory structure provides --- 10547,10644 ---- The module idea is now a somewhat slippery concept that can be defined in two different ways: + o A module is an argument to "checkout". There + are three types: + 1. An entry in the modules file. A "module" + name as described in 'B.' below. + + 2. A relative path to a directory or file in + the Repository. + + 3. A mixed-mode string of + "modulename/relative-path". Everything up + to the first slash ('/') is looked up as a + module. The relative path is appended to + the directory associated with the module + name and the resulting path is checked out + as in #2 above. + + o A module is a unique (within the file) + character string in the first column of the + modules file. There are five types: + 1. A name for a directory within the + Repository that allows you to ignore the + parent directories above it. + + Example: + + emacs gnu/emacs + + 2. A name for a subset of the files within + such a directory. + + Example: + + ls unix/bin Makefile ls.c + + The 2nd through Nth strings in the above + can be files, directories or module + substitutions. No relative paths. + + A module substitution occurs when you use a + '&module-name' reference. The module-name + referred to is logically substituted for + the '&module-name' string. + + 3. A relative pathname to a directory within + the Repository which, when checked out, + creates an image of part of the Repository + structure in your current directory. + + Example: + + gnu/emacs -o /bin/emacs.helper gnu/emacs + + The files checked out are exactly the same + as the files "checkout" would retrieve if + the path weren't even in the modules file. + The only reason to put this kind of + relative pathname into the modules file is + to hook one of the helper functions onto + it. + + 4. A relative pathname to a single file within + the Repository which, when checked out, + creates something you probably don't want: + It creates a directory by the name of the + file and puts the file in it. + + Example: + + gnu/emacs/Makefile -o /bin/emacs.helper + gnu/emacs Makefile + + The file checked out is the same as what + you would get if you handed the relative + pathname to the "checkout" command. But it + puts it in a strange place. The only reason + to do this is to hook a helper function + onto a specific file name. + + 5. An alias consisting of a list of any of the + above, including other aliases, plus + exceptions. + + Example: + + my_work -a emacs !emacs/tests gnu/bison + unix/bin/ls.c + + The exception "!emacs/test" above is + functionally equivalent to specifying + "!emacs/tests" on the "checkout" command + line. Another way to look at it is that the modules file is simply another way to "name" files. The hierarchical directory structure provides *************** *** 10732,10740 **** See 4G.2 for some specific ideas about how to use the modules file. - Last modified: 6/13/1997 - 12. What does "merge" mean? ---------------------------- --- 10648,10655 ---- See 4G.2 for some specific ideas about how to use the modules file. + Last modified: 11/12/1997 12. What does "merge" mean? ---------------------------- *************** *** 11257,11286 **** 6. What happened to the CVS Usenet newsgroup I heard about? ------------------------------------------------------------ ! A Usenet newsgroup named "gnu.cvs.info" was ! announced in April 1993, with an expected ! creation date of August, 1993. ! ! As of this writing (October, 1994) it hasn't ! appeared. ! ! If the newsgroup is ever created, it and the ! mailing list should be bidirectionally gatewayed, ! meaning that you only need access to one of them. ! Anything sent to the mailing list would be ! automatically posted to "gnu.cvs.info" and ! anything posted to the newsgroup would be ! automatically mailed to "info-cvs". ! ! A newsgroup would be easier to use than a mailing ! list. If the CVS newsgroup ever shows up, ask ! your system administrator whether you get the ! "gnu" hierarchy. If so, select a news reader and ! dive in. ! Last modified: 6/13/1997 [Add an answer to this category] --- 11172,11192 ---- 6. What happened to the CVS Usenet newsgroup I heard about? ------------------------------------------------------------ + + A Usenet newsgroup named "gnu.cvs.info" was announced in April + 1993, with an expected creation date of August, 1993. However, + nothing came of this. + + If you want to discuss CVS on usenet, the correct group is + comp.software.config-mgmt (which also covers other configuration + management systems). Someday it might be possible to create a + comp.software.config-mgmt.cvs, but only if there is sufficient + CVS traffic on comp.software.config-mgmt. ! kingdon@cyclic.com ! Last modified: 9/6/1997 [Add an answer to this category]