Project

General

Profile

RedmineRepositories » History » Version 15

Azamat Hackimov, 2008-12-14 21:28

1 1 Jean-Philippe Lang
h1. Repositories
2
3 8 John Goerzen
Redmine natively supports integration with different SCM: "Subversion":http://subversion.tigris.org/, "CVS":http://www.nongnu.org/cvs/, "Mercurial":http://www.selenic.com/mercurial/, "Darcs":http://darcs.net/, "Git":http://git.or.cz (as of r1236), and "Bazaar":http://bazaar-vcs.org/ (as of r950).
4 1 Jean-Philippe Lang
5 9 Jean-Philippe Lang
Note that you need to install the appropriate binaries on your Redmine host:
6
7
|*SCM*|*Tested with*|*Comments*|
8
|Subversion|1.3 & 1.4|1.3 or higher required|
9
|CVS|1.12.12|1.12 required, won't work with CVSNT|
10
|Mercurial|0.9.3| |
11
|Bazaar|1.0.0.candidate.1| |
12
|Darcs|1.0.7| |
13
|Git|1.5.4.2|As of r1236, slated for release with Redmine 0.7|
14
15
16 1 Jean-Philippe Lang
For exemple, if you want to access Subversion repositories in Redmine, you'll have to install the svn binaries on the Redmine host.
17
18
h2. Attaching an existing repository to a project
19
20
In the project settings, make sure that the 'Repository' module is enabled and go to the 'Repository' tab.
21
Select the SCM that corresponds to your repository and enter the path or URL of your repository.
22
23 2 Jean-Philippe Lang
*Important*: When you first browse the repository, Redmine retrieves the description of all of the existing commits and stores them in the database.
24 1 Jean-Philippe Lang
This is done only once per repository but can very long (or even time out) if your repository has hundreds of commits.
25
26
To avoid this, you can do it offline.
27
After having your repository declared in Redmine, run the following command:
28
29
  ruby script/runner "Repository.fetch_changesets" -e production
30
31
All commits will be retrieved in the Redmine database.
32
33
h3. Subversion repository
34
35
Usual protocols are supported (eg. @http:@, @svn:@, @file:@), just enter the URL of the repository.
36
37 14 Azamat Hackimov
Example:
38 1 Jean-Philippe Lang
39
<pre>
40
http://host/path/to/the/repository
41
</pre>
42
43
You can specify a username and password if the repository requires authentication.
44
45
Note: if you want to access the repository using @svn+ssh://@, you'll have to configure svn+ssh to be non-interactive.
46 5 Jean-Philippe Lang
This requires to setup a public/private key pair for ssh authentication.
47
48
h3. CVS repository
49
50
Enter:
51
* the URL of the repository (it can be either a path or a connection string, eg. @:pserver@).
52
* the module name
53
54 15 Azamat Hackimov
Example:
55 1 Jean-Philippe Lang
56 7 John Goerzen
  :pserver:login:password@host:/path/to/the/repository
57 10 Thomas Lecavelier
58
h4. Git repository
59
60
Redmine request a *bare* and *local* repository to enable browsering.
61
Image you want to browse the to-do list manager project Donebox: its clone URL is git://github.com/ook/donebox.git
62
On the server where you're running redmine, create a directory accessible by the user running your redmine server:
63
<pre>
64
$ sudo mkdir -p /var/redmine/git_repositories
65
$ sudo chown rails:rails /var/redmine/git_repositories
66
$ cd /var/redmine/git_repositories
67
</pre>
68
Note the second line: it change the owner of the newly created directory to user rails, group rails. Of course, you have to replace it according to your server settings (it can be www-data or for very bad sysadmin: root). Keep in mind this user have to be able to run the _git_ command.
69
70
Now it is time to create our bare repository:
71
72
<pre>
73
$ pwd
74
/var/redmine/git_repositories
75
$ git clone --bare git://github.com/ook/donebox.git
76
Initialized empty Git repository in /var/redmine/git_repositories/donebox/
77
remote: Counting objects: 401, done.
78
remote: Compressing objects: 100% (246/246), done.
79
remote: Total 401 (delta 134), reused 401 (delta 134)
80
Receiving objects: 100% (401/401), 179.55 KiB | 185 KiB/s, done.
81
Resolving deltas: 100% (134/134), done.
82
</pre>
83
84
You're done! Just go to your redmine project setting tab, under the repositories choose git, then put in the "Path to .git directory" */var/redmine/git_repositories/donebox/*. Save. Have a look to your repository tab: you can browse it.
85 11 Thomas Lecavelier
86
Note: of course, this git repository won't update by itself. You'll have to git pull it regulary by hand or set up a cron job which will do it for you.