Apache SubversionSubversion (en abrégé svn) est un logiciel de gestion de versions, distribué sous licence Apache. Il a été conçu pour remplacer CVS. Ses auteurs s'appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et considèrent que le modèle de CVS est bon, seule son implémentation est perfectible.
GitHubGitHub (, entreprise GitHub, Inc.) est un service web d'hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git. Ce site est développé en Ruby on Rails et Erlang par Chris Wanstrath, PJ Hyett et Tom Preston-Werner. GitHub propose des comptes professionnels payants, ainsi que des comptes gratuits pour les projets de logiciels libres. Le site assure également un contrôle d'accès et des fonctionnalités destinées à la collaboration comme le suivi des bugs, les demandes de fonctionnalités, la gestion de tâches et un wiki pour chaque projet.
Diffdiff est une commande Unix qui permet de comparer deux fichiers et d’en afficher les différences. Son utilisation typique consiste à calculer les changements entre une version d’un fichier et une version plus ancienne du même fichier. Diff affiche les changements ligne par ligne pour un fichier texte, mais ne gère pas toujours de façon conviviale la différence de Byte Order Mark. Les implémentations modernes prennent également en compte les fichiers binaires.
Gestion de versionsthumb|Exemple d'arbre de gestion de versions La gestion de versions ( ou revision control) consiste à gérer l'ensemble des versions d'un ou plusieurs fichiers (généralement en texte). Essentiellement utilisée dans le domaine de la création de logiciels, elle concerne surtout la gestion des codes source. Cette activité étant fastidieuse et relativement complexe, un appui logiciel est presque indispensable. À cet effet, il existe différents logiciels de gestion de versions qui, bien qu'ayant des concepts communs, apportent chacun leur propre vocabulaire et leurs propres usages.
LinuxLinux ou GNU/Linux est une famille de systèmes d'exploitation open source de type Unix fondés sur le noyau Linux créé en 1991 par Linus Torvalds. De nombreuses distributions Linux ont depuis vu le jour et constituent un important vecteur de popularisation du mouvement du logiciel libre. Si, à l'origine, Linux a été développé pour les ordinateurs compatibles PC, il n'a jamais équipé qu'une très faible part des ordinateurs personnels.
MercurialMercurial est un logiciel de gestion de versions décentralisé disponible sur la plupart des systèmes Unix et Windows. La créatrice et principale développeuse de Mercurial est Olivia Mackall. C'est un logiciel libre, l'ensemble des sources du logiciel étant sous la GNU GPL version 2. Mackall met à disposition Mercurial pour la première fois le , seulement quelques jours après que le développement de Git a commencé. Disponible pour les systèmes d'exploitation Microsoft Windows, Mac OS X, et sur la plupart des systèmes d'exploitation du type Unix, Mercurial est écrit principalement en Python.
SourceForge.netSourceForge.net est une forge logicielle, c'est-à-dire un site web hébergeant la gestion du développement de logiciels majoritairement libres, opéré par Geeknet (anciennement « SourceForge, Inc. ») et qui utilise la forge (auparavant SourceForge). SourceForge.net permet aux développeurs d'héberger des projets logiciels et propose des outils pour leur gestion. Il fournit plusieurs systèmes de gestion de versions comme CVS, SVN, Bazaar, Git ou Mercurial.
Distributed version controlIn software development, distributed version control (also known as distributed revision control) is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centralized version control, this enables automatic management branching and merging, speeds up most operations (except pushing and pulling), improves the ability to work offline, and does not rely on a single location for backups.
Rust (langage)Rust est un langage de programmation compilé multi-paradigme conçu et développé par Mozilla Research depuis 2010. Il a été conçu pour être « un langage fiable, concurrent, pratique », supportant les styles de programmation purement fonctionnel, modèle d'acteur, procédural, ainsi qu'orienté objet sous certains aspects. En 2020, ses domaines de prédilection sont la programmation système, les applications en ligne de commande, les applications Web via WebAssembly, les services réseaux et les systèmes embarqués.
Noyau Linuxvignette|upright=2|Couches de fonctions du Noyau Linux Le noyau Linux est un noyau de système d'exploitation de type UNIX. Il est utilisé dans plusieurs systèmes d'exploitation dont notamment GNU/Linux (couramment appelé « Linux ») et Android. Le noyau Linux est un logiciel partiellement libre (contenant des BLOB et des modules non-libre - consultez Linux-libre) développé essentiellement en langage C par des milliers de bénévoles et salariés collaborant sur Internet.
Eclipse (projet)Eclipse est un projet, décliné et organisé en un ensemble de sous-projets de développements logiciels, de la fondation Eclipse visant à développer un environnement de production de logiciels libre qui soit extensible, universel et polyvalent, en s'appuyant principalement sur Java. Son objectif est de produire et fournir des outils pour la réalisation de logiciels, englobant les activités de programmation (notamment environnement de développement intégré et frameworks) mais aussi d'AGL recouvrant modélisation, conception, test, gestion de configuration, reporting.
Repository (version control)In version control systems, a repository is a data structure that stores metadata for a set of files or directory structure. Depending on whether the version control system in use is distributed, like Git or Mercurial, or centralized, like Subversion, CVS, or Perforce, the whole set of information in the repository may be duplicated on every user's system or may be maintained on a single server. Some of the metadata that a repository contains includes, among other things, a historical record of changes in the repository, a set of commit objects, and a set of references to commit objects, called heads.
Comparison of version-control softwareIn software development, version control is a class of systems responsible for managing changes to computer programs or other collections of information such that revisions have a logical and consistent organization. The following tables include general and technical information on notable version control and software configuration management (SCM) software. For SCM software not suitable for source code, see Comparison of open-source configuration management software.
OpenBSDOpenBSD est un système d'exploitation libre de type Unix, dérivé de 4.4BSD. Créé en 1994 par Theo de Raadt, il est issu de la séparation avec NetBSD, le plus ancien des trois autres principaux systèmes d'exploitation de la famille des BSD aujourd'hui en activité. Le projet OpenBSD est réputé pour son intransigeance sur la liberté du logiciel et du code source, la qualité de sa documentation, et l'importance accordée à la sécurité et la cryptographie intégrée.
Go (langage)Go est un langage de programmation compilé et concurrent inspiré de C et Pascal. Il a été développé par Google à partir d’un concept initial de , Rob Pike et Ken Thompson. vignette|alt=Logo de Google Go|droite|Mascotte de Google Go Go veut faciliter et accélérer la programmation à grande échelle : en raison de sa simplicité, il est donc concevable de l’utiliser aussi bien pour écrire des applications, des scripts ou de grands systèmes. Cette simplicité est nécessaire aussi pour assurer la maintenance et l’évolution des programmes sur plusieurs générations de développeurs.
Fork (développement logiciel)Un fork (terme anglais signifiant « fourche », « bifurcation », « embranchement ») désigne dans le jargon informatique, un nouveau logiciel créé à partir du code source d'un logiciel existant. Son existence découle d’un choix politique venant de visions différentes du projet des différents acteurs qui y participent, un acteur décidant alors de créer cette dérivation pour lui imposer les idées qu’il n’a pas pu soumettre au précédent projet, une forme de schisme.
GNU EmacsGNU Emacs est l’une des deux versions les plus populaires de l’éditeur de texte Emacs (l’autre version est XEmacs). Ces deux versions sont majoritairement compatibles et ont de très nombreux points communs, décrits dans l’article Emacs. Dans le manuel, on peut lire qu'il est l’. GNU Emacs, développé par Richard Stallman depuis 1984 dans le cadre du projet GNU, s’appuie sur le langage Emacs Lisp. GNU Emacs fait partie du projet GNU. En 1984, Stallman commence le projet sur les systèmes Unix.
CodebaseLe terme codebase, ou code base est utilisé en développement de logiciel pour désigner l'ensemble du code source utilisé pour construire un logiciel ou un composant. En général, le codebase n'inclut que des fichiers sources écrits par des humains et non, par exemple, des fichiers sources générés par d'autres outils ou par des programmes. Le codebase d'un projet est habituellement versionné grâce à un système de gestion de versions. Il se trouve alors conservé au milieu d'une quantité importante de code source (public ou privé).
HaskellHaskell est un langage de programmation fonctionnel fondé sur le lambda-calcul et la logique combinatoire. Son nom vient du mathématicien et logicien Haskell Curry. Il a été créé en 1990 par un comité de chercheurs en théorie des langages intéressés par les langages fonctionnels et l'évaluation paresseuse. Le dernier standard est Haskell 2010 : c'est une version minimale et portable du langage conçue à des fins pédagogiques et pratiques, dans un souci d'interopérabilité entre les implémentations du langage et comme base de futures extensions.
Concurrent versions systemCVS (sigle de Concurrent Versions System ("Système de versions concurrentes")) est un système de gestion de versions créé en 1990, qui a été largement utilisé par les projets de logiciels libres. Successeur de SCCS originellement écrit par Dick Grune en 1986, puis complété par Brian Berliner (avec le programme cvs lui-même) en 1989, CVS est par la suite amélioré par de très nombreux contributeurs. Puisqu'il aide les sources à converger vers la même destination, on dira que CVS fait la gestion concurrente de versions ou de la gestion de versions concurrentes.