<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mathieu Agopian &#187; (D)VCS</title>
	<atom:link href="http://mathieu.agopian.info/blog/category/dvcs/feed/" rel="self" type="application/rss+xml" />
	<link>http://mathieu.agopian.info/blog</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Tue, 31 Aug 2010 15:48:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PyCon.fr: venez m&#039;y voir!</title>
		<link>http://mathieu.agopian.info/blog/2009/05/pyconfr-venez-my-voir/</link>
		<comments>http://mathieu.agopian.info/blog/2009/05/pyconfr-venez-my-voir/#comments</comments>
		<pubDate>Sat, 23 May 2009 06:28:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[(D)VCS]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mathieu.agopian.info/blog/?p=129</guid>
		<description><![CDATA[Toi, oui toi lecteur, sache qu&#8217;il y a une conférence sur Python, entièrement gratuite, qui se tiendra le 30 et 31 mai (autant dire, le week-end prochain) sur Paris, à la Cité des Sciences et de l&#8217;Industrie de la Villette. Tarek Ziadé, le président de l&#8217;association AFPY, donne un peu plus de précisions sur cet [...]]]></description>
			<content:encoded><![CDATA[<p>Toi, oui toi lecteur,</p>
<p>sache qu&#8217;il y a une conférence sur Python, <strong>entièrement gratuite</strong>, qui se tiendra le 30 et 31 mai (autant dire, le week-end prochain) sur Paris, à la Cité des Sciences et de l&#8217;Industrie de la Villette.</p>
<p>Tarek Ziadé, le président de l&#8217;association <a title="Site de l'Association Francophone PYthon" href="http://afpy.org" target="_self">AFPY</a>, donne un peu <a title="Explications de Tarek sur PyCon.fr" href="http://www.afpy.org/Members/tarek/pycon-fr-09" target="_self">plus de précisions</a> sur cet évènement.</p>
<p>Et enfin un lien vers l&#8217;évènement lui même, afin d&#8217;y trouver des informations sur le programme: <a title="PyCon.fr 2009" href="http://pycon.fr" target="_self">PyCon.fr 2009</a></p>
<p>J&#8217;y donnerai une présentation de 20 minutes sur un billet que j&#8217;ai commencé sur ce blog: Les (D)VCS, pourquoi, comment? (le premier article: <a title="Premier billet de la série &quot;Les (D)VCS: pourquoi, comment?&quot;" href="http://mathieu.agopian.info/blog/2009/03/le-controle-de-versions-de-sources-pourquoi/" target="_self">Le contrôle de version de sources, pourquoi?</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://mathieu.agopian.info/blog/2009/05/pyconfr-venez-my-voir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le contrôle de versions de sources: pourquoi?</title>
		<link>http://mathieu.agopian.info/blog/2009/03/le-controle-de-versions-de-sources-pourquoi/</link>
		<comments>http://mathieu.agopian.info/blog/2009/03/le-controle-de-versions-de-sources-pourquoi/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 18:07:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[(D)VCS]]></category>

		<guid isPermaLink="false">http://mathieu.agopian.info/blog/?p=115</guid>
		<description><![CDATA[Je vais vous raconter l&#8217;histoire de Brian. Brian est ingénieur informaticien. Le crash disque Brian n&#8217;a pas de chance, et il a failli devoir pointer à l&#8217;ANPE quand il s&#8217;est rendu compte que Son disque dur avait crashé Il n&#8217;avait pas fait de sauvegarde de son boulot Heureusement, il a pu récuperer les sources sur [...]]]></description>
			<content:encoded><![CDATA[<p>Je vais vous raconter l&#8217;histoire de Brian. Brian est ingénieur informaticien.</p>
<h3>Le crash disque</h3>
<p>Brian n&#8217;a pas de chance, et il a failli devoir pointer à l&#8217;ANPE quand il s&#8217;est rendu compte que</p>
<ol>
<li>Son disque dur avait crashé</li>
<li>Il n&#8217;avait pas fait de sauvegarde de son boulot</li>
</ol>
<p>Heureusement, il a pu récuperer les sources sur le serveur de production, et en moins de deux semaines il a pu réimplémenter les dernières fonctionnalités et corrections de bugs qu&#8217;il avait apportées au logiciel.</p>
<h3>Le boss indécis</h3>
<p>Brian n&#8217;a vraiment pas de chance, il a un boss indécis qui vient de lui dire qu&#8217;il ne voulait finalement plus de la dernière fonctionnalité en date:</p>
<p>&laquo;&nbsp;c&#8217;est une très mauvaise idée, commercialement parlant, supprime là au plus vite&nbsp;&raquo;.</p>
<p>Trois jours plus tard, Brian pense n&#8217;avoir oublié d&#8217;annuler les modifications dans aucun fichier.</p>
<h3>La faute à Murphy</h3>
<p>Brian, qui a la poisse, se retrouve à débuguer un morceau de code obscur, et se demande tout à coup qui a bien pu créer ce &laquo;&nbsp;code spaghetti&nbsp;&raquo;.</p>
<ul>
<li>Serait-ce John, le cousin de l&#8217;oncle de sa soeur, qui code comme sa grand-mère?</li>
<li>Ou encore Steven, le surfer blond, qui sort juste de l&#8217;école et n&#8217;a jamais appris à commenter son code?</li>
</ul>
<p>Si seulement Brian le savait, il pourrait demander des éclaircissement à l&#8217;auteur, et aurait quelqu&#8217;un à pointer du doigt à son boss qui vient de sortir son fouet.</p>
<h3>Le CPOLD: la fausse solution</h3>
<p>Pour reprendre le <a title="CPOLD, la poudre verte du suivi de version" href="http://roland.entierement.nu/blog/2008/01/22/cpold-la-poudre-verte-du-suivi-de-versions.html" target="_self">blog de </a><a title="CPOLD, la poudre verte du suivi de version" href="http://roland.entierement.nu/blog/2008/01/22/cpold-la-poudre-verte-du-suivi-de-versions.html" target="_self">R</a><a title="CPOLD, la poudre verte du suivi de version" href="http://roland.entierement.nu/blog/2008/01/22/cpold-la-poudre-verte-du-suivi-de-versions.html" target="_self">oland</a>, le CPOLD à d&#8217;innombrables qualités:</p>
<ul>
<li>pas de format de fichier complexe et susceptible de corruption</li>
<li>pas de conflits</li>
<li>aucun besoin d&#8217;un serveur dédié (on peut tout mettre ensemble, prod et dev confondues)</li>
<li>aucune limitation sur la gestion des branches</li>
<li>une rapidité insurpassable</li>
<li>une simplicité de mise en oeuvre et d&#8217;apprentissage enfantine</li>
<li>pas de modèle de développement imposé (centralisé, distribué, en quinconce, en hélice, toutes les variantes sont possibles)</li>
<li>des sauvegardes facilitées</li>
<li>etc&#8230;</li>
</ul>
<p>Voici en quoi consiste la mise en place du CPOLD:</p>
<pre>    $ cp fichier.py fichier.py.old</pre>
<p>Et voici un exemple de mise en oeuvre du CPOLD:</p>
<pre>    foo_dev
        foo.py
        foo.py.old
        foo.py.old.2009_03_29
        foo.py.marche_pas
        foo.py.todelete
        foo.py.OLD.2006_05_12
        foo.py.bak
        foo.py.fonctionalite_bar
        foo.py.bug
        foo.py.save.20081210
        foo.py.check
        foo.py.test

    foo_prod
        foo.py

    foo_savedev.tgz
    foo_save20090329_v2_0.tgz
    foo_save20080412_v1_2.tgz
    foo_save20060509_v1_0.tgz</pre>
<p>Et pour faire bien, voici un extrait du fichier foo.py:</p>
<pre>    ...
    def bar(thing): # Added the 10th of june, 2006 -- Steven
        """This function is very usefull!"""
        # Brian: refactored 20080410 for release 1.2
        #if thing == "bar": ### Steven: 11/06/06 fixed typo (was thing = "bar")
        #    return True;
        return (thing == "bar")
    ...</pre>
<h3>La fausse bonne idée</h3>
<p>Nous avons déjà vu les avantages du CPOLD, maintenant les inconvénients:</p>
<ul>
<li>Duplication de fichiers</li>
<li>Duplication de code</li>
<li>Réduction dramatique de la lisibilité</li>
<li>Difficulté de grouper des modifications (pour une fonctionnalité par exemple)</li>
<li>Ai-je déjà mentionné la duplication?</li>
</ul>
<h3>Conclusion</h3>
<p>Sommes-nous maintenant tous bien d&#8217;accord avec Brian pour dire que le contrôle de versions, c&#8217;est indispensable? Et que le CPOLD, c&#8217;est dépassé?</p>
<p>Dans une prochaine histoire, les enfants, nous verrons avec Brian quels sont les merveilleux outils à notre disposition: les &laquo;&nbsp;Version Control System&nbsp;&raquo; !</p>
<hr /><span style="text-decoration: underline;">EDIT</span> (05/06/2009): la totalité de cette article (cette première partie ainsi que les deux suivantes, qui ne seront pas publiées sous forme de billet) a été présentée à <a title="PyCON.fr 2009" href="http://pycon.fr" target="_self">PyCON.fr</a>. Vous trouverez les liens vers la présentation (en ligne, au format vidéo, et les sources) dans le billet <span id="sample-permalink">&laquo;&nbsp;<a title="PyCON.fr: une expérience à rénouveller!" href="http://mathieu.agopian.info/blog/2009/06/pyconfr-excellent/" target="_self">PyCON.fr: excellent!</a>&laquo;&nbsp;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://mathieu.agopian.info/blog/2009/03/le-controle-de-versions-de-sources-pourquoi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
