RedmineRepositories » History » Version 12
Azamat Hackimov, 2008-10-02 13:16
ToC
1 | 12 | Azamat Hackimov | {{>TOC}} |
---|---|---|---|
2 | 1 | Jean-Philippe Lang | h1. Repositories |
3 | |||
4 | 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). |
5 | 1 | Jean-Philippe Lang | |
6 | 9 | Jean-Philippe Lang | Note that you need to install the appropriate binaries on your Redmine host: |
7 | |||
8 | |*SCM*|*Tested with*|*Comments*| |
||
9 | |Subversion|1.3 & 1.4|1.3 or higher required| |
||
10 | |CVS|1.12.12|1.12 required, won't work with CVSNT| |
||
11 | |Mercurial|0.9.3| | |
||
12 | |Bazaar|1.0.0.candidate.1| | |
||
13 | |Darcs|1.0.7| | |
||
14 | |Git|1.5.4.2|As of r1236, slated for release with Redmine 0.7| |
||
15 | |||
16 | |||
17 | 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. |
18 | |||
19 | h2. Attaching an existing repository to a project |
||
20 | |||
21 | In the project settings, make sure that the 'Repository' module is enabled and go to the 'Repository' tab. |
||
22 | Select the SCM that corresponds to your repository and enter the path or URL of your repository. |
||
23 | |||
24 | 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. |
25 | 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. |
26 | |||
27 | To avoid this, you can do it offline. |
||
28 | After having your repository declared in Redmine, run the following command: |
||
29 | |||
30 | ruby script/runner "Repository.fetch_changesets" -e production |
||
31 | |||
32 | All commits will be retrieved in the Redmine database. |
||
33 | |||
34 | h3. Subversion repository |
||
35 | |||
36 | Usual protocols are supported (eg. @http:@, @svn:@, @file:@), just enter the URL of the repository. |
||
37 | |||
38 | Exemple: |
||
39 | |||
40 | <pre> |
||
41 | http://host/path/to/the/repository |
||
42 | </pre> |
||
43 | |||
44 | You can specify a username and password if the repository requires authentication. |
||
45 | |||
46 | Note: if you want to access the repository using @svn+ssh://@, you'll have to configure svn+ssh to be non-interactive. |
||
47 | 5 | Jean-Philippe Lang | This requires to setup a public/private key pair for ssh authentication. |
48 | |||
49 | h3. CVS repository |
||
50 | |||
51 | Enter: |
||
52 | * the URL of the repository (it can be either a path or a connection string, eg. @:pserver@). |
||
53 | * the module name |
||
54 | |||
55 | Exemple: |
||
56 | 1 | Jean-Philippe Lang | |
57 | 7 | John Goerzen | :pserver:login:password@host:/path/to/the/repository |
58 | 10 | Thomas Lecavelier | |
59 | h4. Git repository |
||
60 | |||
61 | Redmine request a *bare* and *local* repository to enable browsering. |
||
62 | Image you want to browse the to-do list manager project Donebox: its clone URL is git://github.com/ook/donebox.git |
||
63 | On the server where you're running redmine, create a directory accessible by the user running your redmine server: |
||
64 | <pre> |
||
65 | $ sudo mkdir -p /var/redmine/git_repositories |
||
66 | $ sudo chown rails:rails /var/redmine/git_repositories |
||
67 | $ cd /var/redmine/git_repositories |
||
68 | </pre> |
||
69 | 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. |
||
70 | |||
71 | Now it is time to create our bare repository: |
||
72 | |||
73 | <pre> |
||
74 | $ pwd |
||
75 | /var/redmine/git_repositories |
||
76 | $ git clone --bare git://github.com/ook/donebox.git |
||
77 | Initialized empty Git repository in /var/redmine/git_repositories/donebox/ |
||
78 | remote: Counting objects: 401, done. |
||
79 | remote: Compressing objects: 100% (246/246), done. |
||
80 | remote: Total 401 (delta 134), reused 401 (delta 134) |
||
81 | Receiving objects: 100% (401/401), 179.55 KiB | 185 KiB/s, done. |
||
82 | Resolving deltas: 100% (134/134), done. |
||
83 | </pre> |
||
84 | |||
85 | 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. |
||
86 | 11 | Thomas Lecavelier | |
87 | 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. |