FrRedmineRepository

Version 5 (Mischa The Evil, 2010-10-14 05:19)

1 3 yannick quenec'hdu
[[FrGuide]]
2 3 yannick quenec'hdu
3 1 yannick quenec'hdu
h1. Dépôts
4 1 yannick quenec'hdu
5 1 yannick quenec'hdu
h1. Informations générales
6 1 yannick quenec'hdu
7 1 yannick quenec'hdu
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).
8 1 yannick quenec'hdu
9 1 yannick quenec'hdu
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
10 1 yannick quenec'hdu
11 1 yannick quenec'hdu
|*SCM*|*Testé avec*|*Commentaires*|
12 1 yannick quenec'hdu
|Subversion|1.3 & 1.4|1.3 ou plus requis|
13 1 yannick quenec'hdu
|CVS|1.12.12|1.12 requis, ne fonctionne pas avec CVSNT|
14 1 yannick quenec'hdu
|Mercurial|0.9.3| |
15 1 yannick quenec'hdu
|Bazaar|1.0.0.candidate.1| |
16 1 yannick quenec'hdu
|Darcs|1.0.7| |
17 1 yannick quenec'hdu
|Git|1.5.4.2|depuis r1236, prévu dans Redmine 0.7|
18 1 yannick quenec'hdu
19 1 yannick quenec'hdu
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.
20 1 yannick quenec'hdu
21 1 yannick quenec'hdu
h2. Lier un dépôt existant à un projet
22 1 yannick quenec'hdu
23 1 yannick quenec'hdu
Dans la configuration du projet, vérifiez que le module 'Dépôt' est activé et allez sur l'onglet 'Dépôt'.
24 1 yannick quenec'hdu
Choisissez le SCM correspondant à votre dépôt et entrez le chemin ou l'URL de votre dépôt.
25 1 yannick quenec'hdu
26 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.
27 1 yannick quenec'hdu
28 1 yannick quenec'hdu
Pour éviter cela, vous pouvez le faire hors ligne.
29 1 yannick quenec'hdu
Après avoir déclaré votre dépôt dans Redmine, lancez la commande suivante:
30 1 yannick quenec'hdu
31 1 yannick quenec'hdu
  ruby script/runner "Repository.fetch_changesets" -e production
32 1 yannick quenec'hdu
33 1 yannick quenec'hdu
Tous les commits seront récupérés dans la base de données de Redmine.
34 1 yannick quenec'hdu
35 1 yannick quenec'hdu
Depuis Redmdine 0.9.x, vous pouvez utiliser un lien pour exécuter fetch_changesets pour un projet spécifique ou sur la totalité.
36 1 yannick quenec'hdu
37 1 yannick quenec'hdu
* http://redmine.example.com/sys/fetch_changesets (=> Récupère les changements pour tous les projets actifs)
38 1 yannick quenec'hdu
* http://redmine.example.com/sys/fetch_changesets?id=foo (=> Récupère les changements pour le projet _foo_ seulement)
39 1 yannick quenec'hdu
40 1 yannick quenec'hdu
41 1 yannick quenec'hdu
h3. Dépôt Subversion
42 1 yannick quenec'hdu
43 1 yannick quenec'hdu
Les protocoles classiques sont supportés (cad. @http:@, @svn:@, @file:@), saisir seulement l'URL de votre dépôt.
44 1 yannick quenec'hdu
45 1 yannick quenec'hdu
Exemple:
46 1 yannick quenec'hdu
47 1 yannick quenec'hdu
<pre>
48 1 yannick quenec'hdu
http://hote/chemin/vers/le/depot
49 1 yannick quenec'hdu
</pre>
50 1 yannick quenec'hdu
51 1 yannick quenec'hdu
Vous pouvez spécifier un nom d'utilisateur et un mot de passe si le dépôt requiert une authentification.
52 1 yannick quenec'hdu
53 1 yannick quenec'hdu
Note: si vous souhaitez accéder au dépôt en utilisant @svn+ssh://@, vous aurez à configurer svn+ssh pour le rendre non interactif.
54 1 yannick quenec'hdu
Cela nécessite de configurer une paire de clefs publique/privée pour l'authentification ssh.
55 1 yannick quenec'hdu
56 1 yannick quenec'hdu
h3. Dépôt CVS
57 1 yannick quenec'hdu
58 1 yannick quenec'hdu
Saisir:
59 1 yannick quenec'hdu
60 1 yannick quenec'hdu
* l'URL du dépôt (qui peut être soit un chemin ou une chaîne de connexion, exemple: @:pserver@).
61 1 yannick quenec'hdu
* le nom de module
62 1 yannick quenec'hdu
63 1 yannick quenec'hdu
Exemple:
64 1 yannick quenec'hdu
65 1 yannick quenec'hdu
  :pserver:compte:motdepasse@hote:/chemin/vers/le/depot
66 1 yannick quenec'hdu
67 1 yannick quenec'hdu
h3. Dépôt GIT
68 1 yannick quenec'hdu
69 1 yannick quenec'hdu
h4. Configuration de l'environnement local
70 1 yannick quenec'hdu
71 1 yannick quenec'hdu
Require 
72 1 yannick quenec'hdu
73 1 yannick quenec'hdu
Redmine requiert les dépôts *bare* et *local* pour permettre la navigation sur Redmine.
74 1 yannick quenec'hdu
75 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@.
76 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:
77 1 yannick quenec'hdu
78 1 yannick quenec'hdu
<pre>
79 1 yannick quenec'hdu
$ sudo mkdir -p /var/redmine/git_repositories
80 1 yannick quenec'hdu
$ sudo chown rails:rails /var/redmine/git_repositories
81 1 yannick quenec'hdu
$ cd /var/redmine/git_repositories
82 1 yannick quenec'hdu
</pre>
83 1 yannick quenec'hdu
84 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@.
85 1 yannick quenec'hdu
86 1 yannick quenec'hdu
h4. Créer le dépôt bare
87 1 yannick quenec'hdu
88 1 yannick quenec'hdu
Après les étapes précédentes ont été réalisées, il est temps de créer notre dépôt bare
89 1 yannick quenec'hdu
90 1 yannick quenec'hdu
<pre>
91 1 yannick quenec'hdu
$ pwd
92 1 yannick quenec'hdu
/var/redmine/git_repositories
93 1 yannick quenec'hdu
$ git clone --bare git://github.com/ook/donebox.git donebox.git
94 1 yannick quenec'hdu
Initialized empty Git repository in /var/redmine/git_repositories/donebox.git/
95 1 yannick quenec'hdu
remote: Counting objects: 401, done.
96 1 yannick quenec'hdu
remote: Compressing objects: 100% (246/246), done.
97 1 yannick quenec'hdu
remote: Total 401 (delta 134), reused 401 (delta 134)
98 1 yannick quenec'hdu
Receiving objects: 100% (401/401), 179.55 KiB | 185 KiB/s, done.
99 1 yannick quenec'hdu
Resolving deltas: 100% (134/134), done.
100 1 yannick quenec'hdu
$ cd donebox.git
101 1 yannick quenec'hdu
$ git remote add origin git://github.com/ook/donebox.git
102 1 yannick quenec'hdu
</pre>
103 1 yannick quenec'hdu
104 1 yannick quenec'hdu
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 
105 1 yannick quenec'hdu
106 1 yannick quenec'hdu
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:
107 1 yannick quenec'hdu
108 1 yannick quenec'hdu
<pre>
109 1 yannick quenec'hdu
echo "Post receive-hook => updating Redmine repository"
110 4 yannick quenec'hdu
sudo -u my_redmine_user -p secret perl -we '`cd /redmine/repositories/my_repo.git && git fetch && git reset --soft refs/remotes/origin/master`'
111 1 yannick quenec'hdu
</pre>
112 1 yannick quenec'hdu
113 4 yannick quenec'hdu
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. L'option _soft_ est nécessaire, si le dépôt Bare et l'option par défaut (mixte) ne fonctionne pas. car il n'y a pas d'arbre de travail.
114 1 yannick quenec'hdu
115 1 yannick quenec'hdu
Si vous utilisez github, vous pouvez utiliser le [[Plugin_List#Github-Hook-plugin|Plugin Github Hook]]
116 1 yannick quenec'hdu
117 1 yannick quenec'hdu
h4. Le Dépôt Bare avec Windows
118 1 yannick quenec'hdu
119 1 yannick quenec'hdu
Si vous installez votre répertoire sur *Windows*, ajouter les éléments suivants :
120 1 yannick quenec'hdu
<pre>;%GIT_PATH%\cmd;%GIT_PATH%\bin;</pre> to your %%PATH%% environment variable.
121 1 yannick quenec'hdu
Where %%GIT_PATH%% is the install directory of Git (eg: _C:/Git_)
122 1 yannick quenec'hdu
123 1 yannick quenec'hdu
h3. Dépôt Mercurial
124 1 yannick quenec'hdu
125 1 yannick quenec'hdu
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.
126 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.
127 1 yannick quenec'hdu
128 1 yannick quenec'hdu
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.
129 1 yannick quenec'hdu
130 1 yannick quenec'hdu
h3. Dépôt Bazaar
131 1 yannick quenec'hdu
132 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"
133 1 yannick quenec'hdu
134 1 yannick quenec'hdu
Vous devez être sur que _bzr_ and _bzrlib_ sont respectivement dans ENV['PATH'] et ENV['PYTHONPATH']
135 1 yannick quenec'hdu
Exemple. éditer config/environment.rb et ajouter:
136 1 yannick quenec'hdu
137 1 yannick quenec'hdu
<pre>
138 1 yannick quenec'hdu
ENV['PYTHONPATH'] = '/path/to/pythonlib'
139 1 yannick quenec'hdu
ENV['PATH'] = "#{ENV['PATH']}:/path/to/bzr/bin"
140 1 yannick quenec'hdu
</pre>
141 1 yannick quenec'hdu
142 1 yannick quenec'hdu
h3. Dépôt Darcs 
143 1 yannick quenec'hdu
144 5 Mischa The Evil
TODO
145 1 yannick quenec'hdu
146 1 yannick quenec'hdu
h2. Dépôt user-mapping
147 1 yannick quenec'hdu
148 5 Mischa The Evil
TODO