Flush
[mono.git] / web / ccvs
1 * CVS Access
2
3         If you are an active Mono developer, you can get a CVS account
4         that hosts the Mono source code.  
5
6         If you are not a developer, but want to track the development, please
7         see the <a href="anoncvs.html">AnonCVS</a> instructions.
8
9         Send an e-mail to miguel with your public SSH key for this
10         purpose.  Please specify if the key was generated with SSH1 or SSH2.
11
12         If you are using SSH2, please generate your key using:
13
14 <pre>
15         ssh-keygen -t rsa
16 </pre>
17
18         And mail me the id_rsa.pub file.
19
20         If you are using SSH1, run:
21 <pre>
22         ssh-keygen
23 </pre>
24
25         And mail me your identity.pub file.
26
27         You will need CVS and SSH.  Windows users can get both by
28         installing Cygwin (<a
29         href="http://www.cygwin.com">http://www.cygwin.com</a>)
30
31         Unix users will probably have those tools installed already.
32
33 ** Checking out the sources
34
35         To check out the sources for the first time from the
36         repository, use this command:
37
38 <pre>
39         export CVS_RSH=ssh
40         export CVSROOT=username@mono-cvs.ximian.com:/cvs/public
41         cvs -z3 co mcs mono
42 </pre>
43
44 ** Updating your sources
45
46         Every day people will be making changes, to get your latest
47         updated sources, use:
48
49 <pre>
50         cvs -z3 update -Pd mcs mono
51 </pre>
52
53         Note: The '-z3' enables compression for the whole cvs action.
54         The '-Pd' makes the update operation (P)rune directories that
55         have been deleted and get new (d)irectories added to the
56         repository.
57
58 ** Making patches
59
60         Usually you will want to make a patch to contribute, and let
61         other people review it before commiting it.  To obtain such a
62         "patch", you type:
63         
64 <pre>
65         cd directory-you-want-to-diff
66         cvs -z3 diff -u > file.diff
67         mail mono-list@ximian.com < file.diff
68 </pre>
69
70 ** Keeping track of changes.
71
72         We provide two e-mail based mechanisms to keep track of
73         changes to the code base:
74         
75         <ul>
76                 * <a href="mailto:mono-patches-request@ximian.com">
77                   mono-patches@ximian.com</a>: This mailing list receives
78                   in patch form all the changes that are being made to the
79                   CVS.
80
81                 * <a href="mailto:mono-cvs-list-request@ximian.com">
82                   mono-cvs-list@ximian.com</a>: This mailing list only
83                   receives the CVS commit logs with a list of files
84                   modified.
85         </ul>
86
87         We hope to offer LXR and Bonsai in the future as well.
88
89 ** Commiting your work
90
91         Once you get approval to commit to the CVS, or if you are
92         commiting code that you are the maintainer of, you will want
93         to commit your code to CVS. 
94
95         To do this, you have to "add" any new files that you created:
96
97 <pre>
98         cvs add new-file.cs
99 </pre>
100
101         And then commit your changes to the repository:
102
103 <pre>
104         cvs commit file-1.cs file-2.cs
105 </pre>
106
107 ** The Mailing List
108
109         To keep track of the various development and changes to the
110         CVS tree, you can subscribe to the mono-cvs-list@ximian.com.
111         To subscribe, send an email message to
112         mono-cvs-list-request@ximian.com and in the body of the
113         message put `subscribe'.
114
115         This will send you an email message every time a change is
116         made to the CVS repository, together with the information that
117         the author of the changes submitted.
118         
119 ** Recommendations
120
121         Please do not commit code that would break the compile to the
122         CVS, because that normally wastes everybody's time.  Two things 
123         are important in this step: trying to build your sources and making 
124         sure that you add all the new files before you do a commit.
125
126         To build the sources, most of the type trying the `make' command
127         is enough.  In some cases (the class libraries) we use nant, so
128         you need to run nant manually.
129
130         Use ChangeLog entries so we can keep textual descriptions of
131         your work, and use the contents of your ChangeLog file as the
132         CVS commit message (ie, paste the contents of this into the
133         editor buffer).
134
135         If you are making changes to someone else's code, please make
136         sure you get in touch with the maintainer of that code before
137         applying patches.  You want to avoid commiting conflicting
138         work to someone else's code.