06ac3e7d96914cfbfa6e65b516052be3e9f7f3be
[git.git] / git-cvsserver.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
2     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
4 <head>\r
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
6 <meta name="generator" content="AsciiDoc 7.0.2" />\r
7 <style type="text/css">\r
8 /* Debug borders */\r
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
10 /*\r
11   border: 1px solid red;\r
12 */\r
13 }\r
14 \r
15 body {\r
16   margin: 1em 5% 1em 5%;\r
17 }\r
18 \r
19 a { color: blue; }\r
20 a:visited { color: fuchsia; }\r
21 \r
22 em {\r
23   font-style: italic;\r
24 }\r
25 \r
26 strong {\r
27   font-weight: bold;\r
28 }\r
29 \r
30 tt {\r
31   color: navy;\r
32 }\r
33 \r
34 h1, h2, h3, h4, h5, h6 {\r
35   color: #527bbd;\r
36   font-family: sans-serif;\r
37   margin-top: 1.2em;\r
38   margin-bottom: 0.5em;\r
39   line-height: 1.3;\r
40 }\r
41 \r
42 h1 {\r
43   border-bottom: 2px solid silver;\r
44 }\r
45 h2 {\r
46   border-bottom: 2px solid silver;\r
47   padding-top: 0.5em;\r
48 }\r
49 \r
50 div.sectionbody {\r
51   font-family: serif;\r
52   margin-left: 0;\r
53 }\r
54 \r
55 hr {\r
56   border: 1px solid silver;\r
57 }\r
58 \r
59 p {\r
60   margin-top: 0.5em;\r
61   margin-bottom: 0.5em;\r
62 }\r
63 \r
64 pre {\r
65   padding: 0;\r
66   margin: 0;\r
67 }\r
68 \r
69 span#author {\r
70   color: #527bbd;\r
71   font-family: sans-serif;\r
72   font-weight: bold;\r
73   font-size: 1.2em;\r
74 }\r
75 span#email {\r
76 }\r
77 span#revision {\r
78   font-family: sans-serif;\r
79 }\r
80 \r
81 div#footer {\r
82   font-family: sans-serif;\r
83   font-size: small;\r
84   border-top: 2px solid silver;\r
85   padding-top: 0.5em;\r
86   margin-top: 4.0em;\r
87 }\r
88 div#footer-text {\r
89   float: left;\r
90   padding-bottom: 0.5em;\r
91 }\r
92 div#footer-badges {\r
93   float: right;\r
94   padding-bottom: 0.5em;\r
95 }\r
96 \r
97 div#preamble,\r
98 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,\r
99 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
100 div.admonitionblock {\r
101   margin-right: 10%;\r
102   margin-top: 1.5em;\r
103   margin-bottom: 1.5em;\r
104 }\r
105 div.admonitionblock {\r
106   margin-top: 2.5em;\r
107   margin-bottom: 2.5em;\r
108 }\r
109 \r
110 div.content { /* Block element content. */\r
111   padding: 0;\r
112 }\r
113 \r
114 /* Block element titles. */\r
115 div.title, caption.title {\r
116   font-family: sans-serif;\r
117   font-weight: bold;\r
118   text-align: left;\r
119   margin-top: 1.0em;\r
120   margin-bottom: 0.5em;\r
121 }\r
122 div.title + * {\r
123   margin-top: 0;\r
124 }\r
125 \r
126 td div.title:first-child {\r
127   margin-top: 0.0em;\r
128 }\r
129 div.content div.title:first-child {\r
130   margin-top: 0.0em;\r
131 }\r
132 div.content + div.title {\r
133   margin-top: 0.0em;\r
134 }\r
135 \r
136 div.sidebarblock > div.content {\r
137   background: #ffffee;\r
138   border: 1px solid silver;\r
139   padding: 0.5em;\r
140 }\r
141 \r
142 div.listingblock > div.content {\r
143   border: 1px solid silver;\r
144   background: #f4f4f4;\r
145   padding: 0.5em;\r
146 }\r
147 \r
148 div.quoteblock > div.content {\r
149   padding-left: 2.0em;\r
150 }\r
151 div.quoteblock .attribution {\r
152   text-align: right;\r
153 }\r
154 \r
155 div.admonitionblock .icon {\r
156   vertical-align: top;\r
157   font-size: 1.1em;\r
158   font-weight: bold;\r
159   text-decoration: underline;\r
160   color: #527bbd;\r
161   padding-right: 0.5em;\r
162 }\r
163 div.admonitionblock td.content {\r
164   padding-left: 0.5em;\r
165   border-left: 2px solid silver;\r
166 }\r
167 \r
168 div.exampleblock > div.content {\r
169   border-left: 2px solid silver;\r
170   padding: 0.5em;\r
171 }\r
172 \r
173 div.verseblock div.content {\r
174   white-space: pre;\r
175 }\r
176 \r
177 div.imageblock div.content { padding-left: 0; }\r
178 div.imageblock img { border: 1px solid silver; }\r
179 span.image img { border-style: none; }\r
180 \r
181 dl {\r
182   margin-top: 0.8em;\r
183   margin-bottom: 0.8em;\r
184 }\r
185 dt {\r
186   margin-top: 0.5em;\r
187   margin-bottom: 0;\r
188   font-style: italic;\r
189 }\r
190 dd > *:first-child {\r
191   margin-top: 0;\r
192 }\r
193 \r
194 ul, ol {\r
195     list-style-position: outside;\r
196 }\r
197 ol.olist2 {\r
198   list-style-type: lower-alpha;\r
199 }\r
200 \r
201 div.tableblock > table {\r
202   border-color: #527bbd;\r
203   border-width: 3px;\r
204 }\r
205 thead {\r
206   font-family: sans-serif;\r
207   font-weight: bold;\r
208 }\r
209 tfoot {\r
210   font-weight: bold;\r
211 }\r
212 \r
213 div.hlist {\r
214   margin-top: 0.8em;\r
215   margin-bottom: 0.8em;\r
216 }\r
217 td.hlist1 {\r
218   vertical-align: top;\r
219   font-style: italic;\r
220   padding-right: 0.8em;\r
221 }\r
222 td.hlist2 {\r
223   vertical-align: top;\r
224 }\r
225 \r
226 @media print {\r
227   div#footer-badges { display: none; }\r
228 }\r
229 include::./stylesheets/xhtml11-manpage.css[]\r
230 /* Workarounds for IE6's broken and incomplete CSS2. */\r
231 \r
232 div.sidebar-content {\r
233   background: #ffffee;\r
234   border: 1px solid silver;\r
235   padding: 0.5em;\r
236 }\r
237 div.sidebar-title, div.image-title {\r
238   font-family: sans-serif;\r
239   font-weight: bold;\r
240   margin-top: 0.0em;\r
241   margin-bottom: 0.5em;\r
242 }\r
243 \r
244 div.listingblock div.content {\r
245   border: 1px solid silver;\r
246   background: #f4f4f4;\r
247   padding: 0.5em;\r
248 }\r
249 \r
250 div.quoteblock-content {\r
251   padding-left: 2.0em;\r
252 }\r
253 \r
254 div.exampleblock-content {\r
255   border-left: 2px solid silver;\r
256   padding-left: 0.5em;\r
257 }\r
258 </style>\r
259 <title>git-cvsserver(1)</title>\r
260 </head>\r
261 <body>\r
262 <div id="header">\r
263 <h1>\r
264 git-cvsserver(1) Manual Page\r
265 </h1>\r
266 <h2>NAME</h2>\r
267 <div class="sectionbody">\r
268 <p>git-cvsserver -\r
269    A CVS server emulator for git\r
270 </p>\r
271 </div>\r
272 </div>\r
273 <h2>SYNOPSIS</h2>\r
274 <div class="sectionbody">\r
275 <div class="verseblock">\r
276 <div class="content">export CVS_SERVER=git-cvsserver\r
277 <em>cvs</em> -d :ext:user@server/path/repo.git co &lt;HEAD_name&gt;</div></div>\r
278 </div>\r
279 <h2>DESCRIPTION</h2>\r
280 <div class="sectionbody">\r
281 <p>This application is a CVS emulation layer for git.</p>\r
282 <p>It is highly functional. However, not all methods are implemented,\r
283 and for those methods that are implemented,\r
284 not all switches are implemented.</p>\r
285 <p>Testing has been done using both the CLI CVS client, and the Eclipse CVS\r
286 plugin. Most functionality works fine with both of these clients.</p>\r
287 </div>\r
288 <h2>LIMITATIONS</h2>\r
289 <div class="sectionbody">\r
290 <p>Currently gitcvs only works over ssh connections.</p>\r
291 </div>\r
292 <h2>INSTALLATION</h2>\r
293 <div class="sectionbody">\r
294 <ol>\r
295 <li>\r
296 <p>\r
297 Put server.pl somewhere useful on the same machine that is hosting your git repos\r
298 </p>\r
299 </li>\r
300 <li>\r
301 <p>\r
302 For each repo that you want accessible from CVS you need to edit config in\r
303    the repo and add the following section.\r
304 </p>\r
305 <div class="literalblock">\r
306 <div class="content">\r
307 <pre><tt>[gitcvs]\r
308      enabled=1\r
309      logfile=/path/to/logfile</tt></pre>\r
310 </div></div>\r
311 <div class="literalblock">\r
312 <div class="content">\r
313 <pre><tt>n.b. you need to ensure each user that is going to invoke server.pl has\r
314 write access to the log file.</tt></pre>\r
315 </div></div>\r
316 </li>\r
317 <li>\r
318 <p>\r
319 On each client machine you need to set the following variables.\r
320      CVSROOT should be set as per normal, but the directory should point at the\r
321              appropriate git repo.\r
322      CVS_SERVER should be set to the server.pl script that has been put on the\r
323                 remote machine.\r
324 </p>\r
325 </li>\r
326 <li>\r
327 <p>\r
328 Clients should now be able to check out modules (where modules are the names\r
329    of branches in git).\r
330      $ cvs co -d mylocaldir master\r
331 </p>\r
332 </li>\r
333 </ol>\r
334 </div>\r
335 <h2>Eclipse CVS Client Notes</h2>\r
336 <div class="sectionbody">\r
337 <p>To get a checkout with the Eclipse CVS client:</p>\r
338 <ol>\r
339 <li>\r
340 <p>\r
341 Create a new project from CVS checkout, giving it repository and module\r
342 </p>\r
343 </li>\r
344 <li>\r
345 <p>\r
346 Context Menu-&gt;Team-&gt;Share Project&#8230;\r
347 </p>\r
348 </li>\r
349 <li>\r
350 <p>\r
351 Enter the repository and module information again and click Finish\r
352 </p>\r
353 </li>\r
354 <li>\r
355 <p>\r
356 The Synchronize view appears. Untick  "launch commit wizard" to avoid\r
357 committing the .project file, and select HEAD as the tag to synchronize to.\r
358 Update all incoming changes.\r
359 </p>\r
360 </li>\r
361 </ol>\r
362 <p>Note that most versions of Eclipse ignore CVS_SERVER (which you can set in\r
363 the Preferences-&gt;Team-&gt;CVS-&gt;ExtConnection pane), so you may have to\r
364 rename, alias or symlink git-cvsserver to <em>cvs</em> on the server.</p>\r
365 </div>\r
366 <h2>Clients known to work</h2>\r
367 <div class="sectionbody">\r
368 <p>CVS 1.12.9 on Debian\r
369 CVS 1.11.17 on MacOSX (from Fink package)\r
370 Eclipse 3.0, 3.1.2 on MacOSX (see Eclipse CVS Client Notes)\r
371 TortoiseCVS</p>\r
372 </div>\r
373 <h2>Operations supported</h2>\r
374 <div class="sectionbody">\r
375 <p>All the operations required for normal use are supported, including\r
376 checkout, diff, status, update, log, add, remove, commit.\r
377 Legacy monitoring operations are not supported (edit, watch and related).\r
378 Exports and tagging (tags and branches) are not supported at this stage.</p>\r
379 <p>The server will set the -k mode to binary when relevant. In proper GIT\r
380 tradition, the contents of the files are always respected.\r
381 No keyword expansion or newline munging is supported.</p>\r
382 </div>\r
383 <h2>Dependencies</h2>\r
384 <div class="sectionbody">\r
385 <p>git-cvsserver depends on DBD::SQLite.</p>\r
386 </div>\r
387 <h2>Copyright and Authors</h2>\r
388 <div class="sectionbody">\r
389 <p>This program is copyright The Open University UK - 2006.</p>\r
390 <p>Authors: Martyn Smith    &lt;martyn@catalyst.net.nz&gt;\r
391          Martin Langhoff &lt;martin@catalyst.net.nz&gt;\r
392          with ideas and patches from participants of the git-list &lt;git@vger.kernel.org&gt;.</p>\r
393 </div>\r
394 <h2>Documentation</h2>\r
395 <div class="sectionbody">\r
396 <p>Documentation by Martyn Smith &lt;martyn@catalyst.net.nz&gt; and Martin Langhoff &lt;martin@catalyst.net.nz&gt;Matthias Urlichs &lt;smurf@smurf.noris.de&gt;.</p>\r
397 </div>\r
398 <h2>GIT</h2>\r
399 <div class="sectionbody">\r
400 <p>Part of the <a href="git.html">git(7)</a> suite</p>\r
401 </div>\r
402 <div id="footer">\r
403 <div id="footer-text">\r
404 Last updated 01-Mar-2006 12:05:10 UTC\r
405 </div>\r
406 </div>\r
407 </body>\r
408 </html>\r