Existe-t-il des alternatives open source aux outils de navigation et de gestion DVCS similaires à Bitbucket, Github, Kiln et autres? [fermé]


68

Je connais plusieurs outils / services offrant une navigation et une gestion DVCS, tels que Bitbucket , Github , Kiln , SCM-Manager et Rhodecode .

Cependant, le cas d’utilisation que j’envisage est tel que:

  1. Tout code source doit résider sur les serveurs internes de l'employeur.
  2. La solution doit être open source.
  3. Il doit fournir une expérience similaire à Bitbucket ou Github, notamment un wiki de projet, la navigation et la gestion de référentiels, ainsi que des aspects de codage social tels que la révision de code.
  4. La solution doit avoir un support mercurial (si ce n’est le cas pour d’autres DVCS).

Parmi ceux-ci, seuls SCM-Manager et RhodeCode se rapprochent car ils peuvent être installés sur vos propres serveurs et sont open source. Cependant, ils n'ont pas l'expérience Bitbucket ou Github. Il n'y a pas de traqueur de problème ni de wiki et l'interface utilisateur, bien que fonctionnelle, n'est pas à la hauteur de Github ou Bitbucket.

Je peux me rapprocher de Trac ou de Redmine avec leurs navigateurs de référentiel, mais malheureusement, ils ne disposent pas de fonctionnalités de gestion de référentiel.

Existe-t-il d'autres outils open source offrant une expérience similaire à Bitbucket, Github ou Kiln?


4
GitHub Enterprise fonctionne sur le réseau interne. enterprise.github.com


4
@sylvanaar À ma connaissance, Redmine ne fournit pas de fonctionnalités de gestion de référentiels, mais uniquement une navigation dans les référentiels.
Ryan Taylor

3
gitlabhq.com est le plus proche de GitHub que j'ai vu
Andrew T Finnell

8
Je vote pour rouvrir. C'est une question extrêmement populaire. Pourquoi le fermer? Pouvons-nous au moins le migrer vers un autre endroit?
William Leara

Réponses:


31

Je voudrais regarder Fossil. C'est le système que les développeurs de sqlite utilisent, en interne, apparemment. Il utilise également sqlite, qui est une bonne technologie solide ... agréable et portable - ainsi que simple et fiable.

Il a une bonne interface utilisateur austère (ce qui, je pense, incombe à la nature d’un objectif orienté productivité, tel que celui que vous décrivez). ((Assurez-vous de vérifier le thème "gris". Il est beaucoup moins "routeur-admin" que le "thème" par défaut, si vous pouviez l'appeler ainsi.) système basé, parce que je suis une ventouse pour CGI. Les résultats de cet héritage sont réellement très intéressants, car ce système a un mode unique, JSON-ONLY qui offre toutes sortes de possibilités de mise en œuvre intéressantes.

Ils le mentionnent - mais il est intéressant de répéter qu'il a 0 dépendances. Pas de php, pas de MySQL, pas de python. Nada. C'est son propre exécutable binaire - et cela fonctionne sur de nombreuses plateformes. Je souhaite plus de projets "pensés" de la même manière.

Je ne suis pas affilié à eux, je vais donc simplement citer leurs extolations à la page d' accueil , qui, en général, je suis d'accord avec .. regardez aussi les questions et les critiques ..

Suivi des bogues et wiki - En plus du contrôle de version distribué comme Git et Mercurial, Fossil prend également en charge le suivi des bogues distribué, le wiki distribué et un mécanisme de blog distribué dans un seul package intégré.

Interface Web - Fossil possède une interface Web intégrée et facile à utiliser qui simplifie le suivi des projets et favorise la prise de conscience de la situation. Il vous suffit de taper "fossil ui" dans n'importe quelle commande et Fossil ouvre automatiquement votre navigateur Web dans une page qui fournit un historique détaillé et des informations sur l'état du projet.

Autosync - Fossil prend en charge le mode "autosync" qui permet de faire avancer les projets en réduisant le nombre de forks et de fusions inutiles souvent associés aux projets distribués.

Autonome - Fossil est un seul exécutable autonome qui contient tout ce dont vous avez besoin pour gérer la configuration. L'installation est simple: téléchargez simplement un binaire précompilé pour Linux, Mac ou Windows et mettez-le sur votre $ PATH. Le code source facile à compiler est disponible pour les utilisateurs d'autres plateformes. Les sources fossiles sont également principalement autonomes, ne nécessitant que la bibliothèque "zlib" et la bibliothèque C standard pour être générées.

Mise en réseau simple - Fossil utilise un ancien HTTP simple (avec prise en charge de proxy) pour toutes les communications réseau, ce qui signifie qu'il fonctionne correctement derrière des pare-feu restrictifs. Le protocole utilise efficacement la bande passante au point que Fossil peut être utilisé confortablement sur une connexion Internet par ligne commutée.

CGI activé - Aucun serveur n'est requis pour utiliser fossile. Mais un serveur facilite la collaboration. Fossil prend en charge trois configurations de serveur différentes mais simples. Le plus populaire est un script CGI de 2 lignes. C'est l'approche utilisée par les dépôts de fossiles auto-hébergés.

Robuste et fiable - Fossil stocke le contenu dans une base de données SQLite à l'aide d'un format de fichier durable, afin que les transactions soient atomiques, même si elles sont interrompues par une panne de courant ou une panne système. De plus, des auto-vérifications automatiques vérifient que tous les aspects du référentiel sont cohérents avant chaque validation. En plus de trois ans d’exploitation, aucun travail n’a été perdu après avoir été confié à un dépôt de fossiles.

Mise à jour: au lieu de faire allusion à l'interface, en voici un bref aperçu… Comme vous pouvez le voir, c'est tout simplement simple… Mais cela signifie également une table rase pour la personnalisation… Juste une seule feuille de style et un type d'en-tête / pied de page / corps système de gabarit. Mieux vaut écrire une nouvelle que de réécrire le livre de quelqu'un d’autre, IMO.

fossile ui


3
+1 pour fossile. Je l'ai beaucoup utilisée ici au travail, et le seul "inconvénient" que j'ai vu est cette zone dans laquelle la tortue (git / hg / svn) s'insère. Cependant, il y a le projet winfossil . Il est hébergé dans fossile, si vous voulez regarder l'interface Web d'un projet en plus de fossile lui-même.
Spencer Rathbun

1
Fossil est absolument génial. C'est rarement ce que j'utilise, mais c'est la vérité.
haylem

16

Gitorious est open source et vous pouvez l'installer sur votre propre serveur à l'aide des scripts fournis par Gitorious Community Edition (voir http://www.getgitorious.com/installer ). Gitorious prend désormais en charge les wikis et le suivi des problèmes. Une image Docker est également disponible pour le faire fonctionner rapidement.

Une autre option serait Gitlab, qui est fondamentalement un clone de GitHub, pas aussi mature que gitorious, mais il est en plein développement avec des versions mensuelles.

Vous pouvez également vouloir vérifier plus d'options ici


Le processus d'installation de Gitorious a été simplifié. Vous pouvez utiliser le script d'installation ( getgitorious.com/installer ) ou opter pour l'image virtuelle virtualbox prête à fonctionner ( getgitorious.co/install-gitorious )
Peter Butkovic


8

Vos contraintes sont assez spécifiques, mais je pense que vous pouvez obtenir les résultats que vous recherchez avec les plugins ChiliProject +.

ChiliProject est un fork de Redmine qui utilise des versions mises à jour de Ruby / Rails. Il supporte très bien git et mercurial, et réplique la fonctionnalité de problèmes de Github que vous cherchez en analysant les messages de validation (c'est- refs 291à- dire, dans un commit, un lien entre un commit et le numéro 291).

Il existe également des plugins Redmine / ChiliProject qui fournissent des fonctionnalités telles que la révision de code, la coloration syntaxique et autres subtilités fournies par Github, etc., qui pourraient ne pas être manifestement ou facilement disponibles chez les concurrents open-source.

Il existe d’autres options, JIRA, etc., mais ils (IMHO) ne fournissent pas la richesse ou la richesse des fonctionnalités offertes par la fourchette ChiliProject de Redmine + par la multitude de plug-ins disponibles. Il n'y a pas grand chose que Github et / ou BitBucket fassent pour vous que ChiliProject (éventuellement avec des plugins disponibles gratuitement) ne puisse pas faire; et la beauté est que, si elle n’existe pas déjà, il est généralement assez simple de la mettre en œuvre vous-même.

Si cela vous semble plus que nécessaire, je ne l’ai pas encore essayé, mais GitLab a également l’air intéressant… il ne semble pas avoir l’extensibilité ni l’architecture des plugins de Redmine / Chili, mais si vous regardez pour un clone open source de Github avec la plupart des fonctionnalités de base (et vous n'avez pas besoin de prendre en charge plusieurs DVCS), cela semble très bien.


En outre, si vous avez besoin d’outils Web pour la gestion du contrôle de code source ... j’ai utilisé Gitosis avec Redmine / ChiliProject avec succès ... je ne suis pas sûr de l’équivalent de Mercurial, mais il devrait être relativement simple d’y ajouter.
Jason Lewis

Mise à jour: Redmine utilise également les versions à jour de Rails (si vous voulez dire Rails 3) à partir de Redmine 2.
Alternative

7

Allura http://sf.net/p/allura devrait faire l'affaire. C'est la plate-forme pour tous les projets nouveaux (ou mis à niveau) de SourceForge et elle est open source. Il prend en charge Mercurial et les wikis, ainsi que de nombreux autres outils (Git, SVN, suivi des tickets, forums, etc.). Il n’a pas vraiment de «révision de code», mais il prend en charge les requêtes de regroupement et de fusion pour les dépôts Mercurial et Git.

Il est écrit en Python et utilise MongoDB et Solr pour le stockage de données.

Allura est également présent dans l'incubateur Apache: http://incubator.apache.org/projects/allura.html

Je travaille pour SourceForge et aide à développer Allura.


6

Pour le même problème au travail, nous utilisons un écosystème composé de:

  • Redmine pour le suivi des problèmes
  • RhodeCode pour la gestion du référentiel
  • Jenkins pour une intégration et un déploiement continus (nous avons des travaux pour le déploiement et les tâches de mise à niveau auxquels des autorisations peuvent être attribuées de manière granulaire, et vous bénéficiez du suivi d'audit gratuitement)
  • Active Directory pour l'authentification (tout ce qui précède peut s'intégrer de manière transparente)

L'intégration de DVCS dans Redmine s'est améliorée à pas de géant dans les dernières versions. Je l'ai mise à niveau il y a quelques semaines et je suis extrêmement heureux que la plupart des "pièges" aient disparu.

J'exécute les serveurs Redmine et RhodeCode sur le même hôte, car Redmine ne prend pas encore en charge le dépôt HG distant. Jenkins fonctionne sur plusieurs autres hôtes.

J'utilise un crochet RhodeCode pour déclencher des tirages mercuriels dans Redmine. En raison de JENKINS-13717 , je ne peux pas utiliser de crochet pour les tirettes Jenkins , mais j’ai déjà soumis un correctif pour cela et j’imagine qu’il sera accepté assez rapidement. En attendant, je ne fais qu'interroger le reposé HG toutes les quelques minutes.

Tout fonctionne sous Debian 6.0 sur proxy inversé Nginx pour obtenir une terminaison SSL (tout cela n’est utilisé que sur SSL). Récemment, l'ensemble du package a été déplacé sur un cluster ProxMox afin de le virtualiser avec des résultats remarquables jusqu'à présent. Si vous ne connaissez pas le produit, vous devriez y jeter un coup d'œil. C'est un de ces produits " Je ne peux pas croire que cela existe et je ne le savais pas et OMG, c'est aussi de l'open source! ". Nous exécutons ces services sur des conteneurs OpenVZ qui sont facilement migrés d’un hôte à un autre pour des réparations / mises à niveau du matériel. Sur le même cluster, nous exécutons également un ensemble de machines virtuelles KVM pour les tests automatisés sur les plates-formes Windows.

Je suis extrêmement content de cet écosystème. Il a amélioré la capacité de notre équipe de développement / assurance qualité à reproduire les problèmes et à suivre les modifications de manière considérable. Juste quelques avertissements:

  • Si vous utilisez Rhodecode, ne le configurez pas sur SQLite. Utilisez MySQL ou un autre vrai SGBD. Ce n'est pas vraiment migrable après le fait, et SQLite ne prend qu'une connexion à la fois, ce qui entraîne des verrous et des délais d'attente amusants (voir le code # 439 de RhodeCode ). Cela devient douloureux si Jenkins interroge continuellement le dépôt car vous recevez de temps en temps des messages d'erreur (voir le commentaire ci-dessus sur le problème Jenkins).
  • Vous ne pouvez vraiment pas insister assez sur le fait que, dans Mercurial, le numéro de validation "132" ne signifie rien pour les autres utilisateurs du réseau, car ces numéros ne sont que locaux . Lorsque vous parlez de jeux de modifications dans les tickets Redmine, utilisez le numéro de révision local que vous pouvez obtenir à partir du navigateur de référentiel (identique dans RhodeCode et Redmine, car ils fonctionnent sur le même ordinateur), ou utilisez commit:abcd1234.

Je n'ai aucune hésitation à recommander cette configuration car j'en suis extrêmement heureux. Si vous avez besoin d'aide pour configurer un service spécifique ou si vous souhaitez consulter mes fichiers de configuration, n'hésitez pas à demander.


2

Jetez un oeil à cydra: https://github.com/mensi/cydra il a un support pour

  • Subversion (HTTP)
  • Git (HTTP et SSH sur un port séparé)
  • Mercurial (HTTP)
  • Trac

Il fonctionne sur une approche par projet qui vous permet de créer un projet et de lui affecter plusieurs référentiels (au plus un référentiel SVN). L'authentification est basée sur des plugins individuels (nous l'avons intégrée dans notre LDAP).

Nous l'utilisons pour notre plateforme de codage https://code.vis.ethz.ch . Pour le moment, la révision de code n'est pas prise en charge, mais elle pourrait facilement être ajoutée en tant que plug-in.

Je ne peux pas poster de captures d'écran car je n'ai pas assez de réputation.


1
Le projet Cydra semble avoir été lancé il y a quelques mois à peine et ne semble pas être très activement développé. Peut-être un peu immature à mentionner.
R0MANARMY

Oui, tu as raison. Mais ensuite, si vous souhaitez installer quelque chose comme une plate-forme d'hébergement de code, vous pouvez personnaliser vous-même beaucoup de choses. J'ai donc pensé que cela valait la peine d'être mentionné.
Pascal

2

Pensez à utiliser GitLab https://about.gitlab.com/ car il répond à la plupart de vos besoins:

  1. Vous pouvez l'installer sur site
  2. Il est licencié par le MIT
  3. Il possède un wiki (soutenu par git), une navigation dans le référentiel, une gestion détaillée des accès (niveaux d'accès multiples, branches protégées, intégration LDAP, etc.) et dispose de demandes de fusion pour la révision de code et la discussion (y compris les commentaires de ligne).
  4. Il ne supporte pas mercurial mais seulement git

Il possède également un bon outil de suivi des problèmes ou vous pouvez vous connecter à un outil de suivi des problèmes externe. Vous pouvez tester vos demandes de fusion avec GitLab CI si vous le souhaitez. GitLab a connu une croissance rapide et est utilisé par plus de 25 000 organisations.

Divulgation: Je suis le PDG et co-fondateur de GitLab BV

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.