2009-06-19 10 views
4

J'aide à mettre en place le SCM pour un nouveau programme, et nous sommes actuellement en train de décider d'un VCS. À ce stade, les principaux concurrents sont SVN, ClearCase, SVN + DVCS et juste un DVCS.Open Source Clearcase Alternatives

À l'heure actuelle, l'équipe penche vers SVN ou SVN + DVCS. Nous voulons éviter les coûts et les frais d'administration de ClearCase, mais nous voulons les options de flux de travail et de versioning qu'il offre. J'ai également proposé l'utilisation d'un DVCS, et l'idée est à l'étude.

Pour le DVCS, nous considérons Mercurial, Bazaar et Git. L'équipe se sent à l'aise avec SVN, mais ne pense pas qu'elle offrira la polyvalence nécessaire, c'est pourquoi nous regardons le DVCS en plus de l'option SVN.

Quelqu'un a-t-il un conseil (par exemple, des outils, des processus existants) pour mettre en place une telle configuration?

Les préoccupations comprennent:

  • Facilité d'installation
  • Mise en place des flux de travail (développement < -> revues de code -> test -> tronc, puis le tronc -> branche de test d'intégration -> version avec des corrections de bugs mis dans les branches de publication), audit (trouvé un bogue, quand a-t-il été introduit)
  • Génération de métriques
  • Courbe d'apprentissage raisonnable pour les développeurs de ClearCase.
  • de Windows développement
  • intégration Issue Tracker (va probablement être Redmine, bien qu'il ne soit pas gravée dans le marbre)

Répondre

9

En tant qu'administrateur de ClearCase, j'écarter cet outil sauf si vous avez un complexe fusionner le flux de travail.

workflow que vous mentionnez implique de pouvoir ramifier, réparer, puis fusionner facilement, ce qui ne devrait pas être en faveur de SVN.

Le plus grand piège lorsque vous êtes habitué à ClearCase (en particulier non-UCM ClearCase) est la "composition" d'une spécification de configuration.
Si vous choisissez un DVCS (Mercurial, Bazaar - ou Git car il works really well on Windows), vous not be able to get the same "inheritance effect" -- (when you are selecting different versions with different successive select rules --: comme dit dans cette réponse:

Dans un VCS purement central, vous pouvez définir votre espace de travail (en ClearCase , votre «vue» soit instantané ou dynamique) avec toutes les règles que vous voulez. Cela ne serait pas pratique dans un DVCS (comme dans "Distributed"): lorsque vous faites une branche avec, vous devez le faire avec un point de départ et un contenu clairement défini et facilement répliqué vers d'autres dépôts.

Si vous utilisez ClearCase UCM, qui signifie l'identification des ensembles cohérents de fichiers, qui ne peuvent être atteints grâce - par exemple - Git submodules.
La complexité est plus élevée avec ces DVCS, car ils n'enregistrent pas les dépendances entre les modules (ou "ensemble de fichiers") comme le fait ClearCase UCM.

Donc, pour récapituler:

  • Facilité d'installation: tous les DVCS mentionnés sont faciles à installer. Ce qui doit être pris en compte, c'est l'administration en termes d'accès utilisateur.
  • Configurer les workflows: un DVCS prend en charge tout type de workflow, même centralisé, public-privé, ou .... En ce qui concerne la recherche d'un bogue, tous les types de workflows prennent en charge bisect process.
  • Génération de métriques: si vous entendez par là des "métriques sur le code géré", elles supportent toutes un système de journalisation complet capable d'afficher beaucoup d'informations sur ce qui a changé.
    Mais en terme de "métriques sur l'outil" (vitesse d'un processus ou d'un espace pris par les données), les outils DVCS mentionnés sont considérés beaucoup plus rapides que SVN (voir here as an example).
  • Courbe d'apprentissage raisonnable pour les développeurs utilisés pour ClearCase: l'interface utilisateur graphique peut être un facteur pour alléger la courbe d'apprentissage, mais un DVCS est très différent de ClearCase, comme l'illustre la réponse "core concepts".
  • Développement Windows: ils fonctionnent tous très bien sur la plateforme Windows, avec peut-être un léger avantage (meilleure intégration) sur Mercurial ou Bazaar.
  • Problème intégration tracker (va probablement être Redmine, bien qu'il ne soit pas coulé dans le béton): Redmine supporte maintenant la plupart d'entre eux (et pas seulement SVN comme il l'a fait au début)
3

Quel est le problème avec Git? J'utilise Git sur Windows en ce moment. Cela fonctionne très bien. Git Extensions est très utile si vous souhaitez une intégration de l'explorateur, si c'est votre problème.

+1

Git est lent sur Windows par rapport à Linux. Et TortoiseGit n'est pas vraiment utilisable pour le moment. C'est le problème. –

+0

Si vous êtes un utilisateur de Windows, pourquoi vous en faites-vous vraiment à quelle vitesse Linux est-il? L'important est de savoir comment il se compare à vos alternatives Windows (c'est plus rapide). Tortue est totalement sans importance. Gitgui fonctionne très bien, et il est conçu autour des capacités de Git. –

1

Je n'ai pas d'expérience avec clearcase mais j'espère que ce qui suit va aider certains. Votre question omet plusieurs éléments d'information que je prendrais en compte avant de décider. D'abord, combien de code source aurez-vous? Alors que SVN est bon sur des projets de taille moyenne à grande pour des projets vraiment énormes comme le noyau Linux, Git offrira de bien meilleures performances. Deuxièmement quel IDE utilisez-vous? Alors que Mercurial, Git et SVN ont tous des plugins de studio visuel et d'éclipse, leur qualité est très bonne. Selon l'article de Wikipédia sur Redmine, tous les systèmes SCM que vous envisagez d'intégrer seront intégrés. Le blog suivant peut être utile pour vous depuis son achat écrit un gars qui écrit un système SCM pour vivre. http://www.ericsink.com/

+0

Il y avait une question SO sur l'intégration de Git/VS. Je n'arrive pas à le trouver, mais mon commentaire (qui reste valable) est qu'avec un système d'édition/fusion comme Git, vous n'avez pas vraiment besoin de l'intégration VS. Vous tirez tout, * puis * faites vos trucs VS (code, debug, etc), * puis * fusionnez. Il n'est pas nécessaire de revenir constamment au système de contrôle des révisions pendant que vous développez, comme c'est le cas lorsque vous devez gérer des verrous tout le temps. –

+0

Bien que cela soit vrai, les développeurs utilisent souvent l'EDI au lieu d'un contrôle de version en ligne de commande. Si vous avez une intégration de base pour tirer et fusionner tous les autres, vous voulez probablement utiliser l'IDE. – Jared

0

Si vous pouvez abandonner l'exigence qu'il doit s'exécuter sur Windows alors je vous recommande de regarder Aegis.

+0

Merci pour le lien. A partir d'un point de vue initial, Aegis a le «sens» du type d'environnement dans lequel je travaille.Je laisserai quelques autres personnes le savoir comme une alternative à ClearCase sur les systèmes non-Windows. – deterb

+0

Après avoir examiné plus en détail, Aegis n'est pas un système de contrôle de version. Il est conçu pour intégrer un système de contrôle de version (et d'autres outils) afin de fournir des fonctionnalités supplémentaires telles que des tests automatisés, des bibliothèques d'objets partagés et la révision de code. Je peux toujours le voir utile dans d'autres contextes, alors merci de le partager. – deterb