Back to the KBB home page

The KBB CVS Repository

The KBB source tree is maintained using CVS - the Concurrent Versioning System. We have anonymous read only cvs access for those wanting to keep up with the development tree, and write access for those doing development.

Anonymous CVS Access

You can check out the current cvs tree via anonymous cvs. Asusming you have cvs 1.10, you should follow these instructions:

cvs login

You should be presented with a password prompt - type in 'cvs', hit enter, and you should be back at the prompt.
The next thing to do is checkout the source tree:

cvs co kbb

This should create a directory tree under the current directory, containing the KBB source. Look at it, play with it, send in patches, throw bricks at us - enjoy yourself with it ;-)
Every so often you'll want to update the tree, to keep up with changes made by the developers. To do that, change into the to directory of the tree, and type in:

cvs update -dA .

This will update your source tree, bringing it into synch with the most recent changes to the official tree.

Developer CVS Access

Developer cvs access should be done using a cvs wrapper script, which uses ssh to create a secure connection to the server, and forwards the cvs commands through the encrypted connection. The suggested script is scvs - the version here assumes you're running it on a Unix system with ssh 1 or openssh installed, but it should be fairly easy to modify to work on other systems. Alternatively, you can read the scvs page, which I got the script from - you should be able to set up the ssh port forwarding my hand, as described in the scvs page. If you come up with a good system for doing this on non-Unix systems, please let me know, so I can update this document!

Aside from the script, you'll need an account to be able to login to the server. To get this, email me (himi) and request one. I'll probably ask you to meet me on #kbb on dalnet so I can msg the password to you; alternatively, if you can receive PGP encrypted emails I can send the password to you that way - in fact, the PGP method is preferable, although I'd still prefer to meet people on #kbb to get at least some assurance that I'm sending passwords to a legitimate developer . . .
I like being paranoid about the security of systems I admin, so please don't complain about it to me ;-P

Using the scvs script is much the same as using cvs - the script is a cvs wrapper, after all. To logon, type in this command (assuming scvs is in your path), replacing 'simon' with the username you've been given:

scvs login

You'll first be asked for a password for '' - use 'cvs'. Then you'll see the cvs password prompt - enter the password you were given by me. Assuming you've got the password right (it'll be a random sequence of 10 characters, generated by a nifty little program on my PalmIII ;-), you whould be returned to the prompt (with openssh, you may get another password prompt - you can ignore that, and hi Ctrl-c to kill ssh). Congratulations - you've now logged on ;-)
Next, you'll need to checkout the source tree. Again, replace simon with your username:

scvs co kbb

You'll get the password prompt again, and again you use 'cvs' for that. cvs will then checkout the tree, much as it does with the anonymous checkout.

Once you've made some changes to the code, you'll need to commit them:

scvs commit <filename>

cvs will examine the file you give it for the changes you've made - it stores only the differences between versions of a file. It'll then start up an editor (in this case the venerable vi(1)) for you to enter some comments on the changes you made. If you omit the filename, cvs will look at all the files in the directories below the current directory, and commit any that are more recent than the version in the main repository. This means you can change into the top directory of your working source tree and commit all the changes you've made simply by typing in scvs commit, which can be convenient.

A very brief intoduction to vi(1), for those who haven't yet encountered it:
vi has two modes of operation - command mode, and insert mode. Command mode is where you enter editor commands, like :w for writeing the file to disk, and :q for quitting. Insert mode is where you enter text. You start in command mode, and enter insert mode by hitting 'i' or 'a' - you can then type in text normally. You change back to command mode by hitting the ESC key. So, to enter a comment on committing a file, you would hit 'i', then type in your comment "Changed $foo to $bar in Keen.cgi - terribly embarassing typo there ;-)", hit ESC, then type in ':wq' to save the file, and to quit vi. A very useful additional command is ':q!', which quits without saving your changes. This is useful because if you screw something up, you can abort what you've done and start again . . . This happens quite often when you're not used to vi ;-)
If you abort a commit comment, cvs will ask whether you want to commit anyway, without a comment, or to abort the commit. I generally abort the commit and start again from scratch.

Back to the KBB Home Page

Valid HTML 4.01! Valid CSS!