Juggle Home - Bits'n'Pieces - Feature Hitlist - Problem Reports - Mailing lists - The J Repository - References +-------------------+ | 9!:12'' | |5 | +-------------------+

Juggle CVS Quickstarter (WinCVS)

Juggle CVS Quickstarter (WinCVS)

The following steps show you quickly how to connect to the CVS server at juggle.gaertner.de, to retrieve a small package for demonstration purposes, and commit your changes back to the master source.

WinCVS versions

For download and installation instructions, you should refer to whatever is current at http://www.wincvs.org/.

In order to use this tutorial you should download WinCVS and TCL. TCL is not abolutely necessary for WinCVS, but is necessary for using the macros. Thus, step 5 in the tutorial is not possible without TCL. Try the ActiveState TCL (ActiveTcl) binary. After the installation of ActiveTcl you must write the TCL bin directory into the PATH variable in autoexec.bat, e.g.

PATH c:\tcl\bin;%PATH%
After a reboot, TCL should be recognized by WinCVS. (Thanks to Johannes Eble for these hints!)

This tutorial was originally based on WinCVS version 1.0.x which isn't even available at http://www.wincvs.org/ anymore.

Nowadays, WinCVS has a completely reorganized, improved menue structure. This appears to be an ever moving target, though. Please send me any incongruencies with reality you may notice. I would really appreciate it if people would send me the proper menue selections for WinCVS 1.2 or 1.3 for inclusion. Sorry, I am not running Windows myself usually and require your assistance here. The steps indicated below will still hold for today's versions but you will have to poke around in the menues to find the required command.

In future, I may just advise you rather use the classic command line version of cvs, because you could use the "unix cvs tutorial" then, too. :-o

Checkouts and Committing Changes

  1. connect to the Internet
  2. start WinCVS
  3. CvsAdmin->Preferences
    • general:
      Enter the CVSROOT:
      "passwd" file on the cvs server
    • globals:

      Unmark "checkout readonly" (you'll want to write). Leave the TCP/IP compression unchecked; your modem line will be fast enough to get everything in the repository quite quickly.

  4. CvsAdmin->Login

    You'll be asked for a passwd: for "cvsdemo", it's "fumpen". You'll probably get asked about your "HOME" directory. Select your desktop directory or whatever you feel is appropriate to store your personal CVS password(s).

    If CVS logs you in with a with a simple acknowledgement you got the ticket for the fun stuff.

    If not, contact me (neitzel@gaertner.de) to arrange for a little more handholding.

  5. CvsAdmin->Macros Admin->List the modules on the server

    A list should be displayed. The line with "j-demo" refers to a small set of demo files in the repository. Remember the module name: "j-demo". Also remember the "-d poetry".

  6. CvsAdmin->Checkout module...

    First, you'll be asked for a directory where to store your copy of the module. Select a \temp directory or your desktop or whatever you like.

    Whatever directory you choose, there will be a subdirectory "poetry" created if it's not already there. (Make sure the latter is indeed the case.) The "-d poetry" is responsible for this.

    OK. Next you'll be asked about the "module name and path on the server". Just type in "j-demo", no path is necessary.

    Hit OK to get rolling. When the transfer is completed:

  7. View->Change Browser location

    Adapt your browser location (in the left window) to the newly created "poetry" directory. Click on the "poetry" directory icon. (Hitting the "*" key from your number key pad to explode the hierachy is a good idea.)

    The files pane to the right should now show various files and subdirectories. It also indicates lots of revision numbers which mostly look like and the modified state of the files.

  8. Click through to the poetry directory
  9. Note the version number of the "limerix.ijs" file.

    The branch "1.x" is the so-called "trunc". It is the working branch were most changes happen and side-branches fork off from.

    At this point, you would usually close WinCVS, and work on your copies for the next hours/days. You would presumably "open" the scripts from the J system to work on them and change them. When you'd think you have made a set of nice little changes that work OK, you'd restart CVS to reconnect to the repository and commit the changes into the repository.

    Since this just a little exercise, we just stay connected to the Internet make a little change right from CVS:

  10. Double click on "limerix.ijs"

    Notepad pops up. Add a new stanza. Save. Close Notepad.

    Use the "F5" function key to update the view in all cvs panes.

    CVS will now flag the file as modified, but note that the revision number is still unchanged. That's because that is what your file refers to, checkout-wise.

  11. Single-click limerix.ijs
  12. Selections->Diff selected files

    In the "Diff Settings" form, mark "compare your revision with the same remote revision" and go. You'll see some lines in their "before" and "after" changes variations.

    Also try

  13. Cvs Folders->Diff a folder...

    on the entire "poetry" directory.

    Well, enough work on the new version for today, all works fine, that's a great big fix you made ==> put it back to the repository so everybody else can use the fruits of your labor:

  14. Cvs Folders->Commit a folder...

    Do it on the "poetry" folder with the changed "limerix.ijs". You'll be prompted for a message describing the change you made. One or two terse lines are usually enough. But _do_ give a short description.

    OK. After the "commit" is completed, you'll see the file limerix.ijs at a higher revision number and marked as "unmodified" (because you are in sync with the repository, or rather, the repository is now again in sync with you.)

    Do another diff on limerix.ijs to see there are none.

  15. View the "status" of limerix.ijs
  16. View the "log" of limerix.ijs
  17. View the "graph" of limerix.ijs

    This gives an overview about the revisions of a file. Each rectangle represents a revision of the file, and tags labeling specific revisions or entire branches are also shown. Usually not necessary to survive but cute. Click a bit around. Close the "Graph" window eventually.

  18. File->Exit

Well, that has been *a lot* for Day 1.

I didn't write anything about the toolbar icons. They are very simple and useful short-cuts for the menue entries. Use whatever displays a familiar looking tooltip.

For now, stay away from things that mention "edit/unedit/lock/tag/untag/ watch/branch". The "cvsdemo" account as a shared one should not be used with these features.

Accessing the J Repository

To access the proper J Repository, do not use the "cvsdemo" account. Instead, log in using the "anoncvs" account. The password is "cvs". It gives you read-only access to the files.

If you are contributing material to the J repository, you are welcome to mail me for your own, write-enabled account.

About the online Help

The next thing to do would be not to learn new features but to read the documentation about what you just did.

WinCVS has the usual "Help" button, and the entry of interest for you would be the one labeled "Help on cvs-1.10". This does not refer to the WinCVS GUI, but to the original Unix CVS commands. All these cvs commands can actually be entered in the pane on the lower right (known as output pane to you so far.)

Beware, the Help file is a 115 page binder if printed out. You can skip most information on the more complicated tasks. That's because I'm already taking care of running the server, defining modules, bringing modules into life, mangaging access to the server etc. etc.

But many chapters may be worthwhile to read to understand the mystery words and concepts. The commands and syntax are not worth to learn by rote since you'll have menues and short-cuts for everything anyway. But it's helpful to know the difference between the words "export" and "checkout" appearing in the menues.

The Help item "Help on cvs client" may look important but it's not. (It documents the protocol used between the CVS client and server.)

+-------------------+ | 9!:12'' | |5 | +-------------------+ Juggle Home - Bits'n'Pieces - Feature Hitlist - Problem Reports - Mailing lists - The J Repository - References