# Ruby CVS Repository Guide
The source code of Ruby is stored in CVS repositories. You can walk them around by CVSweb:
Anonymous CVS is also available:
$ cvs -d :pserver:firstname.lastname@example.org:/src login (Logging in to email@example.com) CVS password: $ cvs -z4 -d :pserver:firstname.lastname@example.org:/src co ruby $ cvs -d :pserver:email@example.com:/doc login (Logging in to firstname.lastname@example.org) CVS password: $ cvs -z4 -d :pserver:email@example.com:/doc co doc $ cvs -d :pserver:firstname.lastname@example.org:/www login (Logging in to email@example.com) CVS password: $ cvs -z4 -d :pserver:firstname.lastname@example.org:/www co www
No password is required. Please just press Enter.
In addition, CVSup is also available:
You'll find "supfiles" here. With them, you can get a part of or a whole repository by means of CVSup.
Here lists some simple and important rules for committers. Please follow them so we can maximize the fun of hacking on Ruby!
- Do not touch the files in the CVSROOT modules. When you need to, consult email@example.com first.
- Fill the commit message when you commit so that other people (imagine weeks, months and years later) can see what you did by the commit and why you did it. While copying from the
ChangeLogentry is the preferred way, put a one-line brief comment at least.
- If you forget to fill the commit log, forget to add something important, or commit with a wrong log, then do a "null commit" with the correct log against the files you committed. A "null commit" can be done by doing "
cvs commit -f files..". The
cvsto commit even if the files aren't modified. For that reason, "null commit" is also called "forced commit". It is recommended to add something like "This is a null commit to correct the previous log, ..." so one can see afterwards that it was a null commit.
- The use of "
cvs admin" is prohibited. Never use it! If you find you've committed something wrong by mistake, calm yourself and try something like "
cvs diff -D'1 minute ago' | patch". After you check that it successfully reverted the files you committed by mistake, commit them back with a commit message "I'm Sorry, I'm reverting the previous commit that I did by mistake..", for example. If you add a file by accident, just "
cvs remove" it. When you get panicked, just ask firstname.lastname@example.org to get things back the way they were. No need to worry, because anything can be backed out unless you carelessly use "
cvs admin". If you do "
cvs admin" for some reason, let email@example.com know about it as soon as possible.
- Respect existing maintainers, respect other committers. The existing maintainer may be listed in each file. If not listed, check out the history of the file by "
cvs log" or CVSweb and consider the one who actively maintains it as the defacto maintainer, if any. As for Ruby interpreter, matz is the maintainer. If you are to change a file that someone else maintains, send him/her a patch and ask for a review and the approval instead of committing without notice. It is a good idea to add
Cc:to a mailing list for peer reviews.
- When in doubt on any procedure, ask first and listen to other people.
- Any disputed change must be backed out pending resolution of the dispute if requested by a maintainer. In addition, Matz has the absolute right to decide on everything.
- Do test before committing. For C code, check if it compiles. For Ruby code, check if it passes in a "
ruby -wc" test. For RD documents, check if it passes in formatting.
That's all, folks! Happy hacking!