web-dev-qa-db-fra.com

Intégration de Redmine et Git

J'envisage de passer de svn et trac à git et redmine. Je me demande simplement quelle est l'expérience de chacun. Dans quelle mesure git s'intègre-t-il à Redmine?

Je suis bien décidé à prendre la décision de passer de svn à git - notre travail distribué et la nécessité de créer fréquemment des branches et des fusions rendraient la vie beaucoup plus facile avec git. Mais nous aurions peut-être besoin de diviser les choses en plusieurs projets pour cela. D'après ce que j'ai lu, git et plusieurs projets ne s'intègrent pas très bien avec Trac. Cela dit, dans mes enquêtes sur git, Redmine a également attiré mon attention et certaines des fonctionnalités semblent très utiles.

Cependant, je n'ai pas trouvé autant d'expériences utilisateur de git et Redmine que ce que je voudrais (probablement en raison de mon manque de capacité de recherche ...) et j'aimerais donc connaître votre opinion et vos exemples.

35
user336307

J'ai construit un système l'année dernière qui utilisait Gitorious et Redmine. Vous pouvez intégrer git directement avec Redmine, pas de problème, mais je vous suggère fortement de jeter un coup d’œil sur Gitorious ainsi que sur l’outil permettant de contrôler vos référentiels et de suivre leurs événements. Il peut également être utilisé pour contrôler l'accès aux référentiels, etc.

Intégrer Gitorious et Redmine est assez simple. J'ai écrit un script qui détache les chemins de Gitorious. Ils sont enregistrés dans le système de fichiers haché lorsque vous utilisez Gitorious. Par conséquent, relier ces référentiels à Redmine serait un peu complexe, sinon. Mon script crée des liens vers ces référentiels dans un format beaucoup plus lisible. Il est donc très simple de les lier à Redmine, qui ne sont nécessaires qu’une fois lorsque vous créez le projet. Vous pouvez trouver le script ici .

En gros, vous n'avez pas à vous soucier de l'intégration car Redmine prend en charge git out-of-of-box - en quelque sorte. Bien sûr, vous devez avoir le service git en cours d’exécution sur le serveur où se trouvent vos référentiels "de production" (ceux que vous associez à Redmine, effectuez vos tests automatisés, etc.), mais cela est également résolu avec Gitorious.

J'ai en fait écrit ma thèse de baccalauréat sur ce problème. Il est déjà un peu dépassé depuis que Gitorious et Redmine ont beaucoup évolué, mais je pourrais le rendre disponible si vous voulez le lire. La thèse explique ce qui doit être fait (certains des problèmes ont déjà été résolus par les deux outils) et inclut également un environnement d’intégration continue qui construit automatiquement des packages lorsque les utilisateurs transmettent les modifications aux référentiels et les placent dans un référentiel reprepro où les testeurs etc. peuvent facilement les télécharger avec un navigateur Web.

Redmine a eu quelques problèmes l'année dernière, en particulier le manque de sous-projets était un peu gênant, mais cela a été corrigé dans la version 0.9. De plus, les plug-ins doivent être testés bien avant d'être utilisés en production, certains ne se mélangent pas bien et d'autres ne fonctionnent pas du tout (probablement un conflit entre la version de Redmine et celle du plug-in). Dans l’ensemble, Redmine fonctionne plutôt bien et devrait être facilement extensible à vos besoins. Le support pour Gitorious est superbe, pour Redmine un peu plus sporadique (sacrément français?) Mais les deux outils ont des bases d’utilisateurs suffisamment grandes pour pouvoir être des paris sûrs.

Git est un très bon outil de contrôle de version, spécialement conçu pour les équipes agiles. Cela prend un peu d’apprentissage et vous devriez écrire un guide sur la façon de l’utiliser pour que vos développeurs en tirent le meilleur parti, mais une fois que vous l’apprenez, c’est extrêmement productif. Nous avons écrit notre propre qui énonce simplement le processus de travail normal. La création de branches, la fusion, etc. doivent être expliquées. Par exemple, travailler sur la branche principale de votre référentiel personnel n’est pas une si bonne idée. Toujours créer une branche et y travailler. Lorsque vous extrayez les modifications apportées à votre branche principale à partir d'un autre référentiel, il est plus facile de gérer la fusion de cette façon - et vous ne pousserez pas accidentellement quelque chose que vous ne souhaitiez pas.

28
Makis

c'est un bon match en raison de la flexibilité de ces deux plates-formes de Nice

Configuration d'intégration

  • installez le dépôt git officiel (maître) dans un autre endroit en utilisant gitolite ou gerrit pour une administration facile, car redmine ne fournit pas ces fonctionnalités pour git
  • lance le travail cron simple pour synchroniser le repo maître git avec le repo git Redmine en mode lecture seule

Utilisation de l'intégration des deux

  • voir automatiquement la relation avec les problèmes avec git commit
  • contrôler automatiquement le problème avec git commit

consultez mes blogs ALM - De l'exigence à la mise en œuvre et au déploiement et ALM - Intégration de Redmine avec git, bravo

En tout cas je suis content de l'intégration.

support limité pour les dépôts multi-git

Une chose que j’ai remarquée est qu’il ne supporte pas les dépôts multi-git, voir feature http://www.redmine.org/issues/779

De plus, lorsque vous configurez le référentiel git pour la première fois, il ne peut pas être modifié, sachez que

11
Larry Cai

Bonjour, j’ai écrit un guide pour cela il ya quelque temps. Le guide installe un git propre et une mine rouge propre. Aucun autre logiciel supplémentaire nécessaire. Il vous permet même de gérer des comptes dans redmine via http git.

Vous pouvez le trouver ici: http://codersopinion.com/blog/install-redmine-with-automated-git-on-centos-redhat/

Parce que j’ai écrit ce guide il ya quelque temps, les versions ne correspondent peut-être pas mais il devrait quand même fonctionner avec les versions actuelles.

6
RJD22

Je suis tombé sur ce fil lorsque j'ai cherché à intégrer correctement Redmine à Gitorious. Depuis que nous avons réussi à atteindre cet objectif et que nous en avons une expérience à long (ou à moyen terme), je pensais la partager.

Nous avons adopté une approche différente de celle de cronjobs, car elle était un peu trop rigide pour nous ..__ Nous mentionnons également d'autres tutoriels pour la partie installation de Redmine et Gitorious dans notre article de blog:

http://codepool.at/blog/archives/12

Nous utilisons ce système depuis environ 5 mois et en sommes assez satisfaits. Le seul "problème" est que chaque fois que vous créez un nouveau projet dans Redmine, vous devez exécuter une commande de terminal afin de pouvoir connecter le projet au référentiel. Puisque nous ne créons pas de projets en masse, c’est la bonne approche pour nous.

J'espère que ça aide!

0
Florian

Une autre chose à considérer est le contrôle d’accès. Si vous voulez pouvoir contrôler l'accès par validation à différents projets via redmine, cela vous sera utile.

http://wiki.bitnami.org/Applications/BitNami_Redmine_Stack#How_to_configure_Redmine_for_advanced_integration_with_Git

Vous ne savez pas comment vous lieriez des comptes Redmine à Gitorious, mais cela pourrait également être possible.

0
Lee Ballard

Je suis satisfait de ma configuration git + redmine (et de l'utilisation de gitolite pour l'administration des mises en pension). Voici quelques points d'ancrage en python que j'utilise pour optimiser l'utilisation des deux outils:

Préambule: configurer un utilisateur rest.bot

Les opérations de hook seront effectuées en étant authentifiées en tant qu'utilisateur rest.bot.
Accédez à la console d’administration Redmine et créez cet utilisateur rest.bot.
Sur la page Roles and permissions, créez un groupe Rest bot avec View issues et Edit issues uniquement comme autorisations.
N'oubliez pas de configurer les transitions des statuts autorisés pour ce rôle dans la page Workflow.
Ajoutez rest.bot utilisateur à vos projets avec le rôle Rest bot attribué.

Client commit-msg hook: développe le numéro d'édition en titre

https://Gist.github.com/KraYmer/4443858 pour éditer et copier en <git dir>/share/git-core/templates/hooks sur la machine cliente

Ce hook vous permet de référencer un problème Redmine dans votre message git commit en saisissant simplement son numéro et en le développant automatiquement en ajoutant le sujet.

'working on ref #1234' => 'working on ref #1234:Eliminate dangling pointers'

Serveur post-receive hook: change le statut des problèmes en analysant les messages git commit

https://Gist.github.com/KraYmer/5292077 pour éditer et copier dans le répertoire .gitolite/common/hooks sur le serveur

Référence aux problèmes dans les messages de validation est une fonctionnalité fournie avec Redmine par défaut, mais elle est limitée au simple référencement (aucun statut modifié) ou à la fermeture du problème.
Ce hook a pour but d’étendre l’ensemble des mots-clés reconnus pour changer l’état des issues sur les commits:

$ git Push
...
remote: [post-receive] Parsing 1 commits for branch 'develop'
remote: [post-receive] Setting issue #1608 status to 'totest'
...

Le hook prend en charge la récupération des modifications dès qu'une validation est effectuée afin que les modifications soient reflétées en temps réel sur le site Web.

0
kraymer