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.
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.
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.
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.
Machine virtuellethumb|Machine virtuelle des assistants personnels Palm. En informatique, une machine virtuelle (anglais virtual machine, abr. VM) est d'un appareil informatique créée par un logiciel d'émulation ou instanciée sur un hyperviseur. Le logiciel d'émulation simule la présence de ressources matérielles et logicielles telles que la mémoire, le processeur, le disque dur, voire le système d'exploitation et les pilotes, permettant d'exécuter des programmes dans les mêmes conditions que celles de la machine simulée.
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.
Type systemIn computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type (for example, integer, floating point, string) to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term.
Commande DOSLes systèmes DOS sont fournis en standard avec un nombre réduit de commandes, essentiellement destinées à la gestion des disques et des fichiers (d'où le D pour Disk, ou disque en français). Il existe des commandes internes (contenues dans l'interpréteur) et des commandes externes (il faut les charger à partir d'une disquette). Les commandes DOS peuvent s'exécuter de manière interactive au sein de l'interface en ligne de commande ou en traitement par lot depuis un fichier de script portant l’extension .bat.
HyperviseurUn hyperviseur est une plate-forme de virtualisation qui permet à plusieurs systèmes d’exploitation de fonctionner en parallèle dans une seule machine physique. Les hyperviseurs sont classés actuellement en deux catégories : Un hyperviseur de Type 1, natif, voire « bare metal » (littéralement « métal nu »), est un logiciel qui s'exécute directement sur une plateforme matérielle ; cette plateforme est alors considérée comme outil de contrôle du système d'exploitation.
Théorie des typesEn mathématiques, logique et informatique, une théorie des types est une classe de systèmes formels, dont certains peuvent servir d'alternatives à la théorie des ensembles comme fondation des mathématiques. Ils ont été historiquement introduits pour résoudre le paradoxe d'un axiome de compréhension non restreint. En théorie des types, il existe des types de base et des constructeurs (comme celui des fonctions ou encore celui du produit cartésien) qui permettent de créer de nouveaux types à partir de types préexistant.
Projet (management)Un projet est — en management d'entreprise — un ensemble finalisé d’activités et d’actions entreprises par une « équipe projet » sous la responsabilité d'un chef de projet dans le but de répondre à un besoin défini par un contrat dans des délais fixés et dans la limite d'une enveloppe budgétaire allouée. Comme exemple de projets célèbres, on peut citer le « projet Manhattan ».
Sûreté du typageLa sûreté du typage est un principe permettant d'améliorer la qualité de la programmation. Dans les langages à typage statique, l'un des objectifs est d'intercepter les erreurs de type de données lors de la compilation. Un type peut être vu comme un ensemble de valeurs et un ensemble d'opérateurs. La programmation objet a introduit les notions d'objets, messages, classes, héritage. Il est tentant de faire coller les classes à des types.
COMMANDCOMMAND (programme exécutable : COMMAND.COM) est un interpréteur de commandes standard pour les systèmes compatibles MS-DOS comme PC-DOS et IBM-DOS. Il est livré par défaut avec ces systèmes. Il existe d'autres interpréteurs pour les systèmes MS-DOS ultérieurs à ce logiciel, notamment 4DOS qui lui ajoute des fonctionnalités supplémentaires. On ne les confondra pas avec Cmd, qui est l'interpréteur de commande standard des systèmes postérieurs à MS-DOS comme Windows NT (Windows 2000, Windows XP...) et OS/2.
Gestion de projetLa gestion de projet, est l'ensemble des activités visant à organiser le bon déroulement d’un projet et à en atteindre les objectifs en temps et en heures selon les objectifs visés. Elle consiste à appliquer les méthodes, techniques, et outils de gestion spécifiques aux différentes étapes du projet, de l'évaluation de l'opportunité jusqu'à l'achèvement du projet. Cette activité porte également le nom de conduite de projet, pilotage de projet, ingénierie de projet, ou encore management de projet.
Inférence de typesL'inférence de types est un mécanisme qui permet à un compilateur ou un interpréteur de rechercher automatiquement les types associés à des expressions, sans qu'ils soient indiqués explicitement dans le code source. Il s'agit pour le compilateur ou l'interpréteur de trouver le type le plus général que puisse prendre l'expression. Les avantages à disposer de ce mécanisme sont multiples : le code source est plus aéré, le développeur n'a pas à se soucier de retenir les noms de types, l'interpréteur fournit un moyen au développeur de vérifier (en partie) le code qu'il a écrit et le programme est peu modifié en cas de changement de structure de données.
Chef de projetLe chef de projet (CDP) est la personne chargée de mener un projet et de gérer son bon déroulement. De manière générale, sans être systématique, il anime une équipe pendant la durée du ou des projet(s) dont il a la charge. D'autres appellations existent pour ce type de poste (chargé/coordonnateur/responsable/gestionnaire/administrateur/directeur, etc.) et varient en fonction de l'organisation et de la taille de l'entreprise de travail.
Type (informatique)vignette|Présentation des principaux types de données. En programmation informatique, un type de donnée, ou simplement un type, définit la nature des valeurs que peut prendre une donnée, ainsi que les opérateurs qui peuvent lui être appliqués. La plupart des langages de programmation de haut niveau offrent des types de base correspondant aux données qui peuvent être traitées directement — à savoir : sans conversion ou formatage préalable — par le processeur.