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.
GitGit est un logiciel de gestion de versions décentralisé. C'est un logiciel libre et gratuit, créé en 2005 par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2. Le principal contributeur actuel de Git, et ce depuis plus de 16 ans, est Junio C Hamano. Depuis les années 2010, il s’agit du logiciel de gestion de versions le plus populaire dans le développement logiciel et web, qui est utilisé par des dizaines de millions de personnes, sur tous les environnements (Windows, Mac, Linux).
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.
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.
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.
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.
Branche (gestion de configuration)En gestion de configuration logicielle, une branche est une dérivation dans l'histoire de l'évolution des éléments de configuration. Une branche est une évolution d'un élément ayant pour origine une version précise, produisant une «branche de version». Une branche de version correspond à un axe d'évolution de versions. Elle est rattachée à une branche source et peut découler sur plusieurs sous-branches. La gestion de l'ensemble des branches et des versions d'un produit constitue le versionnage (versioning en anglais) et est l'objet de la gestion de configuration.
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.
Gestion électronique des documentsLa gestion électronique des documents (GED ou en anglais DMS pour Document Management System ou EDM pour Electronic Document Management) désigne un logiciel informatisé visant à organiser et gérer des informations sous forme de documents électroniques au sein d'une organisation. Les logiciels de GED intègrent d'autres fonctionnalités permettant de faciliter voire d'automatiser la gestion des documents.
Gestion des actifs numériquesLa gestion des actifs numériques (GAN, traduit de l'anglais digital asset management, DAM) couvre l'alimentation, l'annotation, le classement, le stockage et la recherche d'actifs numériques, comme les images numériques fixes (illustrations, photos numériques, etc.) et images animées (animations, vidéos, etc.), les enregistrements sonores (musique, discours, etc.) et autres documents multimédias ou bureautiques.
Système de gestion de contenualt=Exemple de design du système de gestion de contenu WorldPress|vignette|293x293px|Exemple de design du système de gestion de contenu WordPress Un système de gestion de contenu ou SGC (content management system ou CMS en anglais) est un programme informatique permettant de créer un site internet, un blogue ou encore un site de vente en ligne. Les fonctionnalités d'un SGC sont nombreuses. Il permet entre autres de travailler à plusieurs sur un même document ; de séparer les opérations de gestion de la forme et du contenu ; de structurer le contenu (FAQ, documents, blogues, forums, etc.
Open-source softwareOpen-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative, public manner. Open-source software is a prominent example of open collaboration, meaning any capable user is able to participate online in development, making the number of possible contributors indefinite.
Snippetvignette|Exemple de snippet Un snippet est un terme de programmation informatique désignant une petite portion réutilisable de code source ou de texte. Ordinairement, ce sont des unités formellement définies à incorporer dans des modules plus larges. La gestion de snippets est une fonctionnalité de certains éditeurs de texte, des éditeurs de code source, des IDE et autres logiciels apparentés. L'Office québécois de la langue française recommande l'usage des termes « bout de code », « extrait de code », « fragment de code » et « morceau de code » à la place de « snippet ».
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.
ClonageLe clonage désigne principalement deux processus. C'est d'une part la multiplication naturelle ou artificielle à l'identique d'un être vivant, c'est-à-dire avec conservation exacte du même génome pour tous les descendants (les clones). C'est donc un synonyme de certaines formes de multiplication asexuée telles que le bouturage. C'est d'autre part la multiplication provoquée d'un fragment d'ADN par l'intermédiaire d'un micro-organisme.
Intégration continuevignette|ZAPTEST screenshot L'intégration continue est un ensemble de pratiques utilisées en génie logiciel consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l'application développée. Le concept a pour la première fois été mentionné par Grady Booch et se réfère généralement à la pratique de l'extreme programming. Le principal but de cette pratique est de détecter les problèmes d'intégration au plus tôt lors du développement.
Prédiction de branchementLa prédiction de branchement est une fonctionnalité d'un processeur qui lui permet de prédire le résultat d'un branchement. Cette technique permet à un processeur de rendre l'utilisation de son pipeline plus efficace. Avec cette technique, le processeur va faire de l’exécution spéculative : il va parier sur le résultat d'un branchement, et va poursuivre l’exécution du programme avec le résultat du pari. Si le pari échoue, les instructions chargées par erreur dans le pipeline sont annulées.
Système de fichiersLe terme système de fichiers (abrégé « FS » pour File System, parfois filesystem en anglais) désigne de façon ambigüe : soit l'organisation hiérarchique des fichiers au sein d'un système d'exploitation (on parle par exemple du file system d'une machine unix organisé à partir de sa racine (/) ) soit l'organisation des fichiers au sein d'un volume physique ou logique, qui peut être de différents types (par exemple NTFS, , FAT32, ext2fs, ext3fs, ext4fs, zfs, btrfs, etc.
BranchementEn informatique, un branchement est une opération consistant à se déplacer au sein d'un code exécuté par un processeur, en « sautant » à une adresse identifiée au lieu de poursuivre l'exécution du code séquentiellement. Un processeur est une unité de traitement séquentielle, ce qui signifie qu'il exécute un ensemble d'instructions en effectuant celles-ci les unes après les autres.
Clonage humainthumb|Illustration représentant deux êtres humains de patrimoine génétique identique. Le 'clonage humain' consiste en la création d'un être humain ou de cellules embryonnaires humaines à partir de la totalité du matériel génétique d'un humain déjà conçu. On pourrait comparer ce concept à une gémellité retardée, et obtenue à la suite d'une décision. Le clonage a donné l'espoir d'ouvrir un large éventail de possibilités médicales, telles par exemple que le remplacement d'un organe vital endommagé par un clone de celui-ci ou sa régénération par des cellules souches issues de l'embryon.