FrGuide

Dépôts

Informations générales

Redmine supporte nativement l'intégration avec différents SCM: Subversion, CVS, Mercurial, Darcs, Git (as of r1236), et Bazaar (depuis r950).

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

SCM Testé avec Commentaires
Subversion 1.3 & 1.4 1.3 ou plus requis
CVS 1.12.12 1.12 requis, ne fonctionne pas avec CVSNT
Mercurial 0.9.3
Bazaar 1.0.0.candidate.1
Darcs 1.0.7
Git 1.5.4.2 depuis r1236, prévu dans Redmine 0.7

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.

Lier un dépôt existant à un projet

Dans la configuration du projet, vérifiez que le module 'Dépôt' est activé et allez sur l'onglet 'Dépôt'.
Choisissez le SCM correspondant à votre dépôt et entrez le chemin ou l'URL de votre dépôt.

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.

Pour éviter cela, vous pouvez le faire hors ligne.
Après avoir déclaré votre dépôt dans Redmine, lancez la commande suivante:

ruby script/runner "Repository.fetch_changesets" -e production

Tous les commits seront récupérés dans la base de données de Redmine.

Depuis Redmdine 0.9.x, vous pouvez utiliser un lien pour exécuter fetch_changesets pour un projet spécifique ou sur la totalité.

Dépôt Subversion

Les protocoles classiques sont supportés (cad. http:, svn:, file:), saisir seulement l'URL de votre dépôt.

Exemple:

http://hote/chemin/vers/le/depot

Vous pouvez spécifier un nom d'utilisateur et un mot de passe si le dépôt requiert une authentification.

Note: si vous souhaitez accéder au dépôt en utilisant svn+ssh://, vous aurez à configurer svn+ssh pour le rendre non interactif.
Cela nécessite de configurer une paire de clefs publique/privée pour l'authentification ssh.

Dépôt CVS

Saisir:

  • l'URL du dépôt (qui peut être soit un chemin ou une chaîne de connexion, exemple: :pserver).
  • le nom de module

Exemple:

:pserver:compte:motdepasse@hote:/chemin/vers/le/depot

Dépôt GIT

Configuration de l'environnement local

Require

Redmine requiert les dépôts bare et local pour permettre la navigation sur Redmine.

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.
Sur le serveur qui exécute Redmine, créez un répertoire accessible à l'utilisateur qui exécute le serveur Redmine:

$ sudo mkdir -p /var/redmine/git_repositories
$ sudo chown rails:rails /var/redmine/git_repositories
$ cd /var/redmine/git_repositories

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.

Créer le dépôt bare

Après les étapes précédentes ont été réalisées, il est temps de créer notre dépôt bare

$ pwd
/var/redmine/git_repositories
$ git clone --bare git://github.com/ook/donebox.git donebox.git
Initialized empty Git repository in /var/redmine/git_repositories/donebox.git/
remote: Counting objects: 401, done.
remote: Compressing objects: 100% (246/246), done.
remote: Total 401 (delta 134), reused 401 (delta 134)
Receiving objects: 100% (401/401), 179.55 KiB | 185 KiB/s, done.
Resolving deltas: 100% (134/134), done.
$ cd donebox.git
$ git remote add origin git://github.com/ook/donebox.git

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

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:

echo "Post receive-hook => updating Redmine repository" 
sudo -u my_redmine_user -p secret perl -we '`cd /redmine/repositories/my_repo.git && git fetch && git reset --soft refs/remotes/origin/master`'

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.

Si vous utilisez github, vous pouvez utiliser le Plugin Github Hook

Le Dépôt Bare avec Windows

Si vous installez votre répertoire sur Windows, ajouter les éléments suivants :

;%GIT_PATH%\cmd;%GIT_PATH%\bin;
to your %PATH% environment variable.
Where %GIT_PATH% is the install directory of Git (eg: C:/Git)

Dépôt Mercurial

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.
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.

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.

Dépôt Bazaar

Vous devez sélectionner Bazaar comme SCM, et saisir /home/username/bzr/repo/trunk dans la boîte de texte Root directory"

Vous devez être sur que bzr and bzrlib sont respectivement dans ENV['PATH'] et ENV['PYTHONPATH']
Exemple. éditer config/environment.rb et ajouter:

ENV['PYTHONPATH'] = '/path/to/pythonlib'
ENV['PATH'] = "#{ENV['PATH']}:/path/to/bzr/bin" 

Dépôt Darcs

TODO

Dépôt user-mapping

TODO