Outil de Gestion de versionning pour un projet JAVA en mode private !

Bonjour,

Quel est le meilleur outil pour gérer le versionning d’un projet JAVA (une équipe de 5 développeurs).

J’ai entendu parler de Bitbucket, GitLab, GitHub…!

Merci :slight_smile:

Hello !

Personnellement j’utilise Github avec abonnement annuel pour bénéficier des dépôts privés. L’interface est simple, et le site est utilisé par une grande majorité de projets open-source.

Pour du dépôt privé gratuit, tu peux te diriger vers Gitlab qui est également très chouette (et open-source), mais que je trouve un peu lourd niveau interface. Bitbucket propose aussi gratuitement des dépôts privés, mais n’évolue plus vraiment, et l’interface se fait vieillotte.

J’espère que cela répondra à ta question :slight_smile:

1 « J'aime »

Hello Adrian,

Merci pour votre réponse. C’est très clair !!

Je dois opter pour un dépôt privé. L’objectif est de découper le projet en sous-projet, et chaque membre travaillera sur un seul projet.

C’est possible après de fusionner les sous-projets en un seul projet (au niveau du serveur).

Pour ma part, c’est mon hébergement mutualisé pro d’OVH qui me fournit mon SVN. Tu le configures et c’est bon.

1 « J'aime »

J’ai installé Gitlab sur un de mes vps ovh et pour le coup j’ai un github-like perso sur lequel je gère tous mes projets, ça fonctionne très bien.

1 « J'aime »

Mon hébergeur ne fournit pas d’un outil :confused:

Bonsoir,

Il est possible d’utiliser un gestionnaire de version sur son propre équipement quand on travail seul.

En équipe il faut une machine qui fasse fonction de serveur.

Au niveau des outils il en existe de très nombreux et il n’y a aucune corrélation entre langage et gestionnaire de version. Par contre, c’est l’intégration avec l’environnement de développement qui pourra faire la différence.

Au niveau des outils à part git et CVS par exemple, il existe aussi Bazaar, JediVCS, … Le choix ne manque pas, comme les langages et les outils d’ailleurs. Il faut reconnaître que les développeurs aiment bien réinventer !

1 « J'aime »

Oui c’est pour cela que j’ai installé Gitlab sur un serveur linux installé sur une machine virtuelle ovh. Là tu es maître de ton serveur et tu installes ce que tu veux dont un serveur de versions - et même un serveur dns, un serveur mail, owncloud pour son Dropbox perso, wekan pour son trello perso, etc. -

2 « J'aime »

Il y a deux points :

  1. Quel système de gestion de version : je recommande d’opter pour un système décentralisé (essentiellement git ; bazaar n’est quasi plus entretenu) plutôt qu’un centralisé (cvs, svn…) qui posera des problèmes à un moment ou un autre.

  2. Quelle plateforme : je trouve davantage rentable de payer les 7 € / mois d’abonnement Github (ou équivalent) que de passer quelques heures à faire un setup propre sur un serveur à soi. Cela dit, ça ne changera pas grand chose pour vos développeurs qui s’adapteront.

1 « J'aime »

J’ai l’impression que pas mal de personnes ne savent pas que Gitlab propose un mode SAAS 100% gratuit, de mon côté je n’ai pas perdu mon temps à m’amuser à l’installer moi-même sur un serveur :smiley:

3 « J'aime »

Bonjour Frédéric,

Merci pour votre réponse.

Le choix est limité maintenant entre GitLab et BitBucket !

L’équipe travaille maintenant sur le projet en utilisant l’EDI : Eclipse.

Quelles sont les étapes pour bien utiliser l’outil de versionning :

Installation de Git sur le serveur ? et après ?
L’objectif est que les développeurs doivent remonter leurs modification sur le serveur directement.

Merci !!

Bonjour Sylvain,

Merci pour votre réponse.

Je pense qu’on va opter plus vers BitBucket ! Comment doit-on procéder ?

Merci

Tout dépend de votre organisation et comme je ne la connais pas en détail. Il sera difficile de donner un ou des conseils avisés.

Cependant, il faut travailler sur différents aspects méthodologique et organisationnel. Après-tout un gestionnaire de version n’est qu’un outil. Celui-ci entrant dans la chaîne industriel de production (analyse, conception, réalisation/codage, recettes/tests, …). Je rappel que la production industrialisé ultime c’est d’automatiser au maximum toutes les étapes, en intégrant entre autre un ou des serveurs de builds, des automates de tests, etc. Ce qui implique de façon sous-jacente une infrastructure.

Il faut caler les outils au mieux de votre organisation et pas l’inverse, ça ça ne marche pas. Même avec des développeurs, qui ont tendance d’ailleurs au passage à êtres très individualiste.

1 « J'aime »

Bonjour Mehdi,

De ce que j’ai compris de ton souhait, perso je ferais comme suit par exemple pour un projet de serveur API sur lequel chaque dev devrait travailler sur une fonction spécifique pour une appli de gestion commerciale :
1 dev pour la gestion des tiers (fournisseurs, clients, prospects);
1 dev pour la gestion des devis, commandes, bons de livraisons et factures clients;
1 dev pour la gestion des demandes de prix, commandes, bons de réception et factures fournisseurs;
1 dev pour la gestion des produits et du stock.

  1. je définirais mon modèle de données et je créerais une base de données de test avec des clients, fournisseurs, commandes, etc. - la sauvegarder pour pouvoir la remonter à l’initial régulièrement -;
  2. je créerais tout d’abord une branche master avec un tronc commun récapitulant les routes d’accès;
  3. je créerai une branche spécifique par dev;
  4. quand un dev a terminé son boulot, qu’il a été testé et vérifié alors je fusionne sa branche avec la branche master;
  5. lorsque tous les dev ont terminé et que tous les modules sont validés alors je remonte une base de données propre sur le serveur de production avec l’appli de la branche master … et je re-teste.
1 « J'aime »

Dans le cas d’un projet de développement, impliquant des équipes plus ou moins importantes. Il faut faire attention aux partages des connaissances.
En effet, si dans un projet on répartie celui-ci entre plusieurs développeurs, que ceux-ci ne partagent pas leurs connaissances acquises durant le projet cela risque de devenir problématique au bout d’un certain temps, pour ne pas dire un temps certain.
Il faut absolument mettre en place de l’échange, de la traçabilité et de la documentation. L’idéal étant de mettre en place un travail d’équipe et que chacun puisse intervenir sur le travail d’un autre au cas où. Ce qui peu arriver plus souvent qu’on ne le croit.
Il y a des tas de raisons à cela départ d’un collaborateur, d’autant plus de façon impromptu, maladie, accident et j’en passe !

2 « J'aime »

Bonjour Julien,

Effectivement, je vais opter plus vers le système décentralisé : GitLab ou BitBucket !

Quelle est la différence entre gitHub privé (abonnement 7 € / mois) ou Gitlab et bitbucket ?

Merci

Bonjour Sylvain,

Merci ! C’est très clair maintenant !

J’aurai besoin des étapes de mise en place de l’outil de versionning. Actuellement chaque développeur travaille sur sa propre machine. Un serveur cloud est mis en place mais malheureusement je n’ai pas les mises à jour des développeurs en temps réel !
Merci

Bonjour Frédéric,

Je partage avec vous votre avis.

le partage, la traçabilité et le partage sont fondamentaux pour l’avancement du projet.

Est ce que tu as une idée sur des outils, des méthodes ou des templates de document pour assurer le suivi et l’avancement d’un projet en méthode agile.

Merci

Je n’ai pas utilisé suffisamment récemment Gitlab et Bitbucket pour les comparer équitablement avec Github. Travaillant beaucoup avec Ruby on Rails, mes dépendances sont sur Github 95% du temps, ce qui en fait un candidat naturel pour cette techno, mais je ne connais pas les us et coutume des développeurs Java.

En cas de mauvais choix migrer d’une plateforme à l’autre n’est normalement pas compliqué.

1 « J'aime »

Bonjour,

Il toute de sorte de façon de faire, ce qui compte c’est qu’elle soit adapté par rapport à votre organisation.

Quand aux outils on peu déjà utiliser le Traitement Texte et le Tableur pour commencer, surtout si l’on est peu nombreux. Ensuite, les Wiki peuvent être intéressant.

1 « J'aime »