<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikibr.binets.fr/index.php?action=history&amp;feed=atom&amp;title=VCS</id>
	<title>VCS - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wikibr.binets.fr/index.php?action=history&amp;feed=atom&amp;title=VCS"/>
	<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=VCS&amp;action=history"/>
	<updated>2026-08-13T02:05:19Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=VCS&amp;diff=6598&amp;oldid=prev</id>
		<title>Qt : /* Exemples de VCS */</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=VCS&amp;diff=6598&amp;oldid=prev"/>
		<updated>2010-12-10T15:06:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Exemples de VCS&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 10 décembre 2010 à 15:06&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot;&gt;Ligne 10 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 10 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[CVS]], assez vieux et peu performant&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[CVS]], assez vieux et peu performant&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[SVN]], très répandu, basé sur une architecture client/serveur&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[SVN]], très répandu, basé sur une architecture client/serveur&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Git]], qui gagne en importance ; basé sur une architecture très distribuée, il est utilisé pour &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;Frankiz&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Git]], qui gagne en importance ; basé sur une architecture très distribuée, il est utilisé pour Frankiz.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Concepts ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Concepts ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Qt</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=VCS&amp;diff=5704&amp;oldid=prev</id>
		<title>Xelnor : Doc sur les VCS, version basique</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=VCS&amp;diff=5704&amp;oldid=prev"/>
		<updated>2009-12-05T16:31:51Z</updated>

		<summary type="html">&lt;p&gt;Doc sur les VCS, version basique&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Version Control System ==&lt;br /&gt;
&lt;br /&gt;
Un &amp;#039;&amp;#039;VCS&amp;#039;&amp;#039; (ou &amp;#039;&amp;#039;système de contrôle de version&amp;#039;&amp;#039;) est un outil de suivi de l&amp;#039;évolution d&amp;#039;un projet.&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;objectif d&amp;#039;un VCS est de faciliter le travail collaboratif sur un projet, et de maintenir un excellent suivi de l&amp;#039;historique du projet.&lt;br /&gt;
&lt;br /&gt;
=== Exemples de VCS ===&lt;br /&gt;
Il existe de nombreux VCS, le BR a utilisé ou utilise encore les suivants :&lt;br /&gt;
&lt;br /&gt;
* [[CVS]], assez vieux et peu performant&lt;br /&gt;
* [[SVN]], très répandu, basé sur une architecture client/serveur&lt;br /&gt;
* [[Git]], qui gagne en importance ; basé sur une architecture très distribuée, il est utilisé pour [[Frankiz]].&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
&lt;br /&gt;
=== Bases ===&lt;br /&gt;
Un VCS se compose :&lt;br /&gt;
* D&amp;#039;un &amp;#039;&amp;#039;&amp;#039;dépôt&amp;#039;&amp;#039;&amp;#039; : l&amp;#039;endroit où est stocké l&amp;#039;ensemble de l&amp;#039;historique du projet (il peut y en avoir plusieurs dans le cas de [[Git]] )&lt;br /&gt;
* De &amp;#039;&amp;#039;&amp;#039;copies de travail&amp;#039;&amp;#039;&amp;#039; (ou &amp;#039;&amp;#039;&amp;#039;checkouts&amp;#039;&amp;#039;&amp;#039;) : En général une par développeur, il s&amp;#039;agit grosso modo d&amp;#039;un export du dépôt, qui stocke notamment (dans un dossier caché) la version &amp;#039;&amp;#039;dépôt&amp;#039;&amp;#039; des fichiers&lt;br /&gt;
&lt;br /&gt;
=== Commits ===&lt;br /&gt;
Lorsque l&amp;#039;on développe, on va récupérer une copie du dépôt, puis effectuer ses modifications et les tester. Une fois que les changements sont corrects, on va réaliser ce que l&amp;#039;on appelle un &amp;#039;&amp;#039;&amp;#039;commit&amp;#039;&amp;#039;&amp;#039; : il s&amp;#039;agit d&amp;#039;envoyer au dépôt les modifications que l&amp;#039;on a effectuées, sous forme de différences par rapport au fichier d&amp;#039;origine. On accompagne la chose d&amp;#039;un message décrivant ce qui a été fait (par exemple, &amp;#039;&amp;#039;fix bug in XXX&amp;#039;&amp;#039;, &amp;#039;&amp;#039;add link for YYY&amp;#039;&amp;#039;, ...).&lt;br /&gt;
&lt;br /&gt;
Cela permet de disposer de l&amp;#039;historique des modifications effectuées sur le projet, et de savoir qui a fait quoi :)&lt;br /&gt;
&lt;br /&gt;
En général, lors d&amp;#039;un commit, un mail résumant les modifications effectuées est envoyé à l&amp;#039;ensemble des développeurs du projet.&lt;br /&gt;
&lt;br /&gt;
Avant d&amp;#039;effectuer des modifications, il convient de mettre à jour sa copie locale : ceci limite le risque de conflit à résoudre &amp;#039;&amp;#039;a posteriori&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Merge ===&lt;br /&gt;
Si l&amp;#039;on a effectué des modifications et qu&amp;#039;un autre utilisateur a &amp;#039;&amp;#039;committé&amp;#039;&amp;#039; en parallèle, deux situations peuvent se produire :&lt;br /&gt;
* Les modifications locales et celles de l&amp;#039;autre développeur concernent des fichiers différents : dans ce cas, le VCS va automatiquement fusionner les modifications (i.e appliquer les modifications de l&amp;#039;autre développeur)&lt;br /&gt;
* Les deux développeurs ont modifié les mêmes lignes d&amp;#039;un même fichier : on parle de &amp;#039;&amp;#039;&amp;#039;conflit&amp;#039;&amp;#039;&amp;#039;. Dans ce cas, le VCS le signale et laisse au développeur le soin de fusionner correctement les modifications (on parle de &amp;#039;&amp;#039;&amp;#039;merge&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
=== Branches ===&lt;br /&gt;
Lorsque les changements à effectuer sont importants et occupent une place certaine, on crée une &amp;#039;&amp;#039;&amp;#039;branche&amp;#039;&amp;#039;&amp;#039; : on part de l&amp;#039;état du projet à l&amp;#039;instant t0, et on diverge du développement standard en ajoutant des modifications variées (généralement pour ajouter une fonctionnalité innovante mais qui impose de lours remaniements du code).&lt;br /&gt;
&lt;br /&gt;
Une fois cette fonctionnalité achevée, on va &amp;#039;&amp;#039;&amp;#039;merger&amp;#039;&amp;#039;&amp;#039; la branche divergente avec la branche principale : il s&amp;#039;agit d&amp;#039;appliquer les changements de la branche divergente à la branche principale. En général, dans le procédé, le VCS commence par appliquer le plus grand nombre possible de commits de la branche divergente à la branche principale ; à chaque fois qu&amp;#039;un conflit se présente, on demande à l&amp;#039;utilisateur de résoudre. Une fois le &amp;#039;&amp;#039;&amp;#039;merge&amp;#039;&amp;#039;&amp;#039; terminé, on commite les modifications effectuées.&lt;br /&gt;
&lt;br /&gt;
En général, un projet contient les branches suivantes :&lt;br /&gt;
* &amp;#039;&amp;#039;master&amp;#039;&amp;#039; (ou &amp;#039;&amp;#039;trunk&amp;#039;&amp;#039;) : là où s&amp;#039;effectue le développement actif,&lt;br /&gt;
* &amp;#039;&amp;#039;prod&amp;#039;&amp;#039; : la version de production, sur laquelle on reportera les commits importants (en général, ceux qui résolvent des failles de sécurité)&lt;br /&gt;
&lt;br /&gt;
=== Tags ===&lt;br /&gt;
&lt;br /&gt;
Lorsque l&amp;#039;on considère qu&amp;#039;il est temps de sortir une nouvelle version, on réalise un &amp;#039;&amp;#039;&amp;#039;tag&amp;#039;&amp;#039;&amp;#039; : il s&amp;#039;agit d&amp;#039;une capture de l&amp;#039;état du dépôt lors de cette version. Cela permet facilement de suivre l&amp;#039;évolution depuis la dernière &amp;#039;&amp;#039;release&amp;#039;&amp;#039;, par exemple.&lt;br /&gt;
&lt;br /&gt;
== Processus de travail ==&lt;br /&gt;
&lt;br /&gt;
Le processus est souvent le suivant :&lt;br /&gt;
# Le développeur récupère une copie de travail&lt;br /&gt;
# Il fait des modifications, et les teste&lt;br /&gt;
# Il envoie un commit&lt;br /&gt;
# Un autre développeur fait des modifications&lt;br /&gt;
# Le développeur met à jour sa copie de travail (y propageant ainsi les modifications effectuées par les autres développeurs)&lt;br /&gt;
# Il fait à nouveau des modifications, les teste, puis committe.&lt;br /&gt;
&lt;br /&gt;
Et ainsi de suite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Règles de bon usage ==&lt;br /&gt;
&lt;br /&gt;
Quelques règles sont à respecter dans un processus de développement collaboratif :&lt;br /&gt;
* Les commits doivent être atomiques : un commit résoud un bug, ajoute une seule fonctionnalité, ... (pas de &amp;#039;&amp;#039;fix typo, fix bug, add XXX&amp;#039;&amp;#039;)&lt;br /&gt;
* Les branches doivent rester opérationnelles : sauf cas exceptionnels, pas de régression dans un commit (si ça marchait avant, ça doit marcher après)&lt;br /&gt;
* On doit accompagner chaque commit d&amp;#039;un message décrivant son effet (pas de &amp;#039;&amp;#039;fix bug&amp;#039;&amp;#039; mais &amp;#039;&amp;#039;Fix problem in module XXX : ...&amp;#039;&amp;#039;).&lt;br /&gt;
* Si un commit résoud un bug indiqué dans le gestionnaire de bugs (Bugzilla, Flyspray, Trac), l&amp;#039;indiquer dans le message : &amp;#039;&amp;#039;Fix bug #42666&amp;#039;&amp;#039; ; en effet, il arrive souvent que ce genre de message ferme automatiquement la tâche en la reliant au commit&lt;/div&gt;</summary>
		<author><name>Xelnor</name></author>
	</entry>
</feed>