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.
You can check out the current cvs tree via anonymous cvs. Asusming you
have cvs 1.10, you should follow these instructions:
cvs -d:pserver:cvs@lassus.himi.org:/cvsroot-kbb 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 -d:pserver:cvs@lassus.himi.org:/cvsroot-kbb 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 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 -d:pserver:simon@lassus.himi.org:/cvsroot-kbb login
You'll first be asked for a password for 'zzh@lassus.himi.org' - 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 zzh@lassus.himi.org 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 -d:pserver:simon@lassus.himi.org:/cvsroot-kbb co kbb
You'll get the zzh@lassus.himi.org 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.