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