* CVS Access If you are an active Mono developer, you can get a CVS account that hosts the Mono source code. If you are not a developer, but want to track the development, please see the AnonCVS instructions. Send an e-mail to miguel with your public SSH key for this purpose. Please specify if the key was generated with SSH1 or SSH2. If you are using SSH2, please generate your key using:
	ssh-keygen -t rsa
And mail me the id_rsa.pub file. If you are using SSH1, run:
	ssh-keygen
And mail me your identity.pub file. You will need CVS and SSH. Windows users can get both by installing Cygwin (http://www.cygwin.com) Unix users will probably have those tools installed already. ** Checking out the sources To check out the sources for the first time from the repository, use this command:
	export CVS_RSH=ssh
	export CVSROOT=username@mono-cvs.ximian.com:/cvs/public
	cvs -z3 co mcs mono
** Updating your sources Every day people will be making changes, to get your latest updated sources, use:
	cvs -z3 update -Pd mcs mono
Note: The '-z3' enables compression for the whole cvs action. The '-Pd' makes the update operation (P)rune directories that have been deleted and get new (d)irectories added to the repository. ** Making patches Usually you will want to make a patch to contribute, and let other people review it before commiting it. To obtain such a "patch", you type:
	cd directory-you-want-to-diff
	cvs -z3 diff -u > file.diff
	mail mono-list@ximian.com < file.diff
** Keeping track of changes. We provide two e-mail based mechanisms to keep track of changes to the code base: We hope to offer LXR and Bonsai in the future as well. ** Commiting your work Once you get approval to commit to the CVS, or if you are commiting code that you are the maintainer of, you will want to commit your code to CVS. To do this, you have to "add" any new files that you created:
	cvs add new-file.cs
And then commit your changes to the repository:
	cvs commit file-1.cs file-2.cs
** The Mailing List To keep track of the various development and changes to the CVS tree, you can subscribe to the mono-cvs-list@ximian.com. To subscribe, send an email message to mono-cvs-list-request@ximian.com and in the body of the message put `subscribe'. This will send you an email message every time a change is made to the CVS repository, together with the information that the author of the changes submitted. ** Recommendations Please do not commit code that would break the compile to the CVS, because that normally wastes everybody's time. Two things are important in this step: trying to build your sources and making sure that you add all the new files before you do a commit. To build the sources, most of the type trying the `make' command is enough. In some cases (the class libraries) we use nant, so you need to run nant manually. Use ChangeLog entries so we can keep textual descriptions of your work, and use the contents of your ChangeLog file as the CVS commit message (ie, paste the contents of this into the editor buffer). If you are making changes to someone else's code, please make sure you get in touch with the maintainer of that code before applying patches. You want to avoid commiting conflicting work to someone else's code.