Project

General

Profile

FrRedmineRepository » History » Version 2

yannick quenec'hdu, 2010-05-24 21:44
Done for Redmine version 0.9.4

1 1 yannick quenec'hdu
h1. Dépôts
2
3
h1. Informations générales
4
5
Redmine supporte nativement l'intégration avec différents 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), et "Bazaar":http://bazaar-vcs.org/ (depuis r950).
6
7
notez que vous devrez installer les binaires appropriés sur votre serveur Redmine et que vos binaires sont accessible depuis votre variable d'environnement PATH
8
9
|*SCM*|*Testé avec*|*Commentaires*|
10
|Subversion|1.3 & 1.4|1.3 ou plus requis|
11
|CVS|1.12.12|1.12 requis, ne fonctionne pas avec CVSNT|
12
|Mercurial|0.9.3| |
13
|Bazaar|1.0.0.candidate.1| |
14
|Darcs|1.0.7| |
15
|Git|1.5.4.2|depuis r1236, prévu dans Redmine 0.7|
16
17
Par exemple, si vous souhaitez accéder à un dépôt Subversion dans Redmine, vous devez installer les binaires svn sur l'hôte Redmine.
18
19
h2. Lier un dépôt existant à un projet
20
21
Dans la configuration du projet, vérifiez que le module 'Dépôt' est activé et allez sur l'onglet 'Dépôt'.
22
Choisissez le SCM correspondant à votre dépôt et entrez le chemin ou l'URL de votre dépôt.
23
24 2 yannick quenec'hdu
*Important*: Lorsque vous parcourez le dépôt pour la première fois, Redmine récupère la description de tous les commits existants et les stocke en base de données. Cette opération est réalisée en une seule fois par dépôt, mais peut s'avérer très longue (allant même jusqu'au time out) si votre dépôt a des centaines de commits.
25 1 yannick quenec'hdu
26
Pour éviter cela, vous pouvez le faire hors ligne.
27
Après avoir déclaré votre dépôt dans Redmine, lancez la commande suivante:
28
29
  ruby script/runner "Repository.fetch_changesets" -e production
30
31
Tous les commits seront récupérés dans la base de données de Redmine.
32
33
Depuis Redmdine 0.9.x, vous pouvez utiliser un lien pour exécuter fetch_changesets pour un projet spécifique ou sur la totalité.
34
35
* http://redmine.example.com/sys/fetch_changesets (=> Récupère les changements pour tous les projets actifs)
36
* http://redmine.example.com/sys/fetch_changesets?id=foo (=> Récupère les changements pour le projet _foo_ seulement)
37
38
39
h3. Dépôt Subversion
40
41
Les protocoles classiques sont supportés (cad. @http:@, @svn:@, @file:@), saisir seulement l'URL de votre dépôt.
42
43
Exemple:
44
45
<pre>
46
http://hote/chemin/vers/le/depot
47
</pre>
48
49
Vous pouvez spécifier un nom d'utilisateur et un mot de passe si le dépôt requiert une authentification.
50
51
Note: si vous souhaitez accéder au dépôt en utilisant @svn+ssh://@, vous aurez à configurer svn+ssh pour le rendre non interactif.
52
Cela nécessite de configurer une paire de clefs publique/privée pour l'authentification ssh.
53
54
h3. Dépôt CVS
55
56
Saisir:
57
58
* l'URL du dépôt (qui peut être soit un chemin ou une chaîne de connexion, exemple: @:pserver@).
59
* le nom de module
60
61
Exemple:
62
63
  :pserver:compte:motdepasse@hote:/chemin/vers/le/depot
64
65
h3. Dépôt GIT
66
67
h4. Configuration de l'environnement local
68
69
Require 
70
71
Redmine requiert les dépôts *bare* et *local* pour permettre la navigation sur Redmine.
72
73 2 yannick quenec'hdu
Imaginez que vous voulez parcourir la liste des tâches du projet "Donebox": L'URL de son clone est @git://github.com/ook/donebox.git@.
74 1 yannick quenec'hdu
Sur le serveur qui exécute Redmine, créez un répertoire accessible à l'utilisateur qui exécute le serveur Redmine:
75
76
<pre>
77
$ sudo mkdir -p /var/redmine/git_repositories
78
$ sudo chown rails:rails /var/redmine/git_repositories
79
$ cd /var/redmine/git_repositories
80
</pre>
81
82 2 yannick quenec'hdu
Note à la deuxième ligne: il change la propriété du répertoire nouvellement créé pour l'utilisateur @rails@ et le groupe @rails@. Bien sûr, vous devez le remplacer selon les paramètres de votre serveur (cela peut être @www-data@ @apache@ ou lorsque vous avez un très mauvais adminsys: @root@). Garder à l'esprit que cet utilisateur doit avoir les permissions en local pour exécuter la commande @git@.
83 1 yannick quenec'hdu
84
h4. Créer le dépôt bare
85
86
Après les étapes précédentes ont été réalisées, il est temps de créer notre dépôt bare
87
88
<pre>
89
$ pwd
90
/var/redmine/git_repositories
91
$ git clone --bare git://github.com/ook/donebox.git donebox.git
92
Initialized empty Git repository in /var/redmine/git_repositories/donebox.git/
93
remote: Counting objects: 401, done.
94
remote: Compressing objects: 100% (246/246), done.
95
remote: Total 401 (delta 134), reused 401 (delta 134)
96
Receiving objects: 100% (401/401), 179.55 KiB | 185 KiB/s, done.
97
Resolving deltas: 100% (134/134), done.
98
$ cd donebox.git
99
$ git remote add origin git://github.com/ook/donebox.git
100
</pre>
101
102
Votre dépôt est maintenant créé ! allez dans l"interface de configuration de votre projet dans Redmine et choisissez l'onglet Dépôt et sélectionner @git@ comme SCM, saisir dans "Path to .git directory" (dans notre exemple @/var/redmine/git_repositories/donebox.git/@) et sauver les paramètres. Jetez un oeil à votre onglet dépôt: Vous devriez maintenant être en mesure de naviguer dans votre répertoire avec succès 
103
104
Note:  bien sûr, ce dépôt git sera pas mis à jour par lui-même. Vous aurez à récupérer le dépôt @git@ régulièrement à la main, mettre en place une tâche cron qui va exécuter la commande @fetch git@ automatiquement pour vous ou pour utiliser un hook post-receive, comme celui-ci:
105
106
<pre>
107
echo "Post receive-hook => updating Redmine repository"
108
sudo -u my_redmine_user -p secret perl -we '`cd /redmine/repositories/my_repo.git && git fetch && git reset refs/remotes/origin/master`'
109
</pre>
110
111
Note: pour la réinitialisation git, vous *avez besoin* de mettre à jour l'arbre git et de voir vos modifications dans la vue du dépôt.
112
113
Si vous utilisez github, vous pouvez utiliser le [[Plugin_List#Github-Hook-plugin|Plugin Github Hook]]
114
115
h4. Le Dépôt Bare avec Windows
116
117
Si vous installez votre répertoire sur *Windows*, ajouter les éléments suivants :
118
<pre>;%GIT_PATH%\cmd;%GIT_PATH%\bin;</pre> to your %%PATH%% environment variable.
119
Where %%GIT_PATH%% is the install directory of Git (eg: _C:/Git_)
120
121
h3. Dépôt Mercurial
122
123
Pour synchroniser avec un dépôt Mercurial, vous devrez avoir un clone local du dépôt sur le même serveur que celui ou vous avez installé sur Redmine.
124 2 yannick quenec'hdu
Disons que vous avez mis dans Redmine /var/www/redmine.example.com/www et que vous mis votre dépôt mercurial dans /var/www/sources.example.com/repo/example, vous devez sélectionner *Mercurial* comme SCM, et saisir  */var/www/sources.example.com/repo/example* dans la boîte de texte.
125 1 yannick quenec'hdu
126
Cela commencer à vérifier le dépôt Mercurial, et vous ne verrez pas les résultats immédiatement. Attendez quelques secondes (ou éventuellement minutes), puis cliquez sur l'onglet *dépôt* de votre projet (pas de vos paramètres de configuration). Vous devriez maintenant voir les résultats qui s'affichent.
127
128
h3. Dépôt Bazaar
129
130 2 yannick quenec'hdu
Vous devez sélectionner *Bazaar* comme SCM, et saisir  */home/username/bzr/repo/trunk* dans la boîte de texte Root directory"
131 1 yannick quenec'hdu
132
Vous devez être sur que _bzr_ and _bzrlib_ sont respectivement dans ENV['PATH'] et ENV['PYTHONPATH']
133
Exemple. éditer config/environment.rb et ajouter:
134
135
<pre>
136
ENV['PYTHONPATH'] = '/path/to/pythonlib'
137
ENV['PATH'] = "#{ENV['PATH']}:/path/to/bzr/bin"
138
</pre>
139
140
h3. Dépôt Darcs 
141
142
TBD
143
144
h2. Dépôt user-mapping
145
146
TBD