Code Co-op est le système de contrôle de révision peer-to-peer créé par Reliable Software.
Caractéristiques distinctives
Code Co-op est un système de contrôle de révision distribué de type répliqué.
Il utilise une architecture peer-to-peer pour partager des projets entre développeurs et contrôler les modifications apportées aux fichiers. Au lieu d'utiliser une base de données centralisée (le référentiel), il réplique sa propre base de données sur chaque ordinateur impliqué dans le projet.
Les répliques sont synchronisées par l'échange de scripts (différentiels) . L'échange de scripts peut se faire via différents transports, notamment le courrier électronique (prise en charge de SMTP et POP3 , intégration avec les clients MAPI , Gmail ) et le réseau local.
Code Co-op dispose d'un système wiki peer-to-peer intégré , qui peut être utilisé pour intégrer la documentation à un projet logiciel. Il est également possible de créer des bases de données wiki textuelles, qui peuvent être interrogées à l'aide de SQL simplifié directement à partir des pages wiki.
Caractéristiques standard
- Support de développement distribué par e-mail , LAN ou VPN
- Modèle basé sur les modifications : les modifications apportées à plusieurs fichiers sont enregistrées comme une seule transaction
- Les ajouts, suppressions, renommages et déplacements de fichiers sont traités au même niveau que les modifications : ils peuvent être ajoutés dans n'importe quelle combinaison à un ensemble de modifications d'archivage
- Les modifications apportées aux fichiers peuvent être examinées avant un enregistrement à l'aide d'un différentiel intégré ou défini par l'utilisateur.
- Les modifications de synchronisation peuvent être examinées de la même manière par les destinataires
- Fusion visuelle à trois
- L'historique du projet est répliqué sur chaque machine. La version historique peut être consultée, comparée ou restaurée
- Intégration avec les clients Microsoft SCC, y compris Visual Studio
Histoire
Code Co-op a été l'un des premiers systèmes de contrôle de version distribués. Il a été lancé lors du 7e atelier sur la gestion de la configuration système en mai 1997.
Le développement de Code Co-op a commencé en 1996, lorsque Reliable Software, la société de logiciels distribués qui le produit, a été créée. Reliable Software avait besoin d'un outil de collaboration qui fonctionnerait entre les États-Unis et la Pologne . Le seul moyen de communication fiable et abordable entre les deux pays était le courrier électronique, d'où l'idée d'utiliser le courrier électronique pour l'échange de différences. Bien sûr, avec un transport aussi lent, l'utilisation d'un référentiel centralisé était impossible. Chaque utilisateur de Code Co-op devait disposer d'une réplique complète du référentiel, y compris l'historique des modifications.
Le problème se résumait à la conception d'une base de données distribuée qui utilise un transport lent et peu fiable pour la synchronisation (plus tard, un transport LAN plus rapide a également été ajouté). Il s'ensuivait également que la synchronisation entre plusieurs sites devait utiliser une sorte de protocole peer-to-peer .
En 2018, le code source C++ de Code Co-op a été publié sous la licence MIT .
Fondements théoriques
Code Co-op est un exemple de base de données distribuée . Les référentiels locaux sont considérés comme les répliques de cette base de données virtuelle. Chaque archivage correspond à une validation distribuée, une version non bloquante d'une validation en deux phases .