Merge fixes early for next maint series.
[git.git] / Documentation / git-cvsserver.txt
1 git-cvsserver(1)
2 ================
3
4 NAME
5 ----
6 git-cvsserver - A CVS server emulator for git
7
8
9 SYNOPSIS
10 --------
11 [verse]
12 export CVS_SERVER=git-cvsserver
13 'cvs' -d :ext:user@server/path/repo.git co <HEAD_name>
14
15
16 DESCRIPTION
17 -----------
18
19 This application is a CVS emulation layer for git.
20
21 It is highly functional. However, not all methods are implemented,
22 and for those methods that are implemented,
23 not all switches are implemented.
24
25 Testing has been done using both the CLI CVS client, and the Eclipse CVS
26 plugin. Most functionality works fine with both of these clients.
27
28 LIMITATIONS
29 -----------
30 Currently gitcvs only works over ssh connections.
31
32
33 INSTALLATION
34 ------------
35 1. Put server.pl somewhere useful on the same machine that is hosting your git repos
36
37 2. For each repo that you want accessible from CVS you need to edit config in
38    the repo and add the following section.
39
40    [gitcvs]
41         enabled=1
42         logfile=/path/to/logfile
43
44    n.b. you need to ensure each user that is going to invoke server.pl has
45    write access to the log file.
46
47 5. On each client machine you need to set the following variables.
48      CVSROOT should be set as per normal, but the directory should point at the
49              appropriate git repo.
50      CVS_SERVER should be set to the server.pl script that has been put on the
51                 remote machine.
52
53 6. Clients should now be able to check out modules (where modules are the names
54    of branches in git).
55      $ cvs co -d mylocaldir master
56
57 Operations supported
58 --------------------
59
60 All the operations required for normal use are supported, including
61 checkout, diff, status, update, log, add, remove, commit.
62 Legacy monitoring operations are not supported (edit, watch and related).
63 Exports and tagging (tags and branches) are not supported at this stage.
64
65 The server will set the -k mode to binary when relevant. In proper GIT
66 tradition, the contents of the files are always respected.
67 No keyword expansion or newline munging is supported.
68
69 Dependencies
70 ------------
71
72 git-cvsserver depends on DBD::SQLite.
73
74 Copyright and Authors
75 ---------------------
76
77 This program is copyright The Open University UK - 2006.
78
79 Authors: Martyn Smith    <martyn@catalyst.net.nz>
80          Martin Langhoff <martin@catalyst.net.nz>
81          with ideas and patches from participants of the git-list <git@vger.kernel.org>.
82
83 Documentation
84 --------------
85 Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz>Matthias Urlichs <smurf@smurf.noris.de>.
86
87 GIT
88 ---
89 Part of the gitlink:git[7] suite