<?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>Astuces d&#039;Absolacom &#187; developpement</title>
	<atom:link href="http://astuces.absolacom.com/tag/developpement/feed/" rel="self" type="application/rss+xml" />
	<link>http://astuces.absolacom.com</link>
	<description>La voie est libre mais pleine d&#039;achoppements</description>
	<lastBuildDate>Tue, 07 Feb 2012 13:21:17 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[Dolibarr 3.0] Avoir le montant des factures/devis sur les boites d&#8217;accueil</title>
		<link>http://astuces.absolacom.com/logiciel/dolibarr-3-0-avoir-le-montant-des-facturesdevis-sur-les-boites-daccueil/</link>
		<comments>http://astuces.absolacom.com/logiciel/dolibarr-3-0-avoir-le-montant-des-facturesdevis-sur-les-boites-daccueil/#comments</comments>
		<pubDate>Thu, 12 May 2011 20:20:28 +0000</pubDate>
		<dc:creator>manuberro</dc:creator>
				<category><![CDATA[ça a fonctionné pour moi]]></category>
		<category><![CDATA[dolibarr]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[logiciel]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://astuces.absolacom.com/?p=1068</guid>
		<description><![CDATA[Note importante avant de commencer: Je ne suis pas un expert du PHP et de ses subtilités. Pas plus que du code de Dolibarr. Donc on peut sans doute faire plus simple/ plus propre/ plus beau/ plus court/ plus clinquant/ plus rapide/ &#8230; Ça fonctionne. Je ne demandais rien d&#8217;autre au code. Et ça fonctionne [...]]]></description>
			<content:encoded><![CDATA[<h2>Note importante avant de commencer:</h2>
<ul>
<li>Je ne suis pas un expert du PHP et de ses subtilités. Pas plus que du code de <a title="Informations sur Dolibarr" href="http://www.dolibarr.fr/wiki" target="_blank">Dolibarr</a>. Donc on peut sans doute faire plus simple/ plus propre/ plus beau/ plus court/ plus clinquant/ plus rapide/ &#8230;</li>
<li>Ça fonctionne. Je ne demandais rien d&#8217;autre au code. Et ça fonctionne comme je le veux.</li>
<li>Ça n&#8217;a été testé que sur dolibarr-3.0.0 stable depuis avril 2011. Aucune garantie que ça fonctionne pour vous ou sur votre installation. Prenez les précautions d&#8217;usage avant de tout casser (sauvegarde des fichiers, BDD, travail sur une installation de test, etc)</li>
<li>Aucune assistance ne sera donnée. Les astuces ci dessous vous sont données brutes. Ensuite, voyez sur les forums de PHP ou de <a title="Forums de Dolibarr" href="http://www.dolibarr.fr/forum" target="_blank">Dolibarr</a> pour le reste. Ce n&#8217;est pas un manque de volonté de vous aider, mais un manque de compétence avoué. Je bricole en PHP, mais ce n&#8217;est pas mon métier.</li>
</ul>
<h1>Genèse</h1>
<p>Lorsque j&#8217;ai un client au téléphone, ou par  courrier, il n&#8217;utilise jamais le numéro de devis ou de facture. Ça n&#8217;est pas naturel pour lui. En général, on me donne le montant. Exemple: &laquo;&nbsp;<em>oublions le devis de 2412.35, mais on va faire celui de 1200. J&#8217;ai envoyé la facture de 360 à la compta, &#8230;</em>.&nbsp;&raquo;</p>
<p>Ça a du vous arriver, si vous êtes dans la même situation professionnelle que moi.</p>
<p>Sauf qu&#8217;avec <a title="Site de dolibarr" href="http://www.dolibarr.fr/" target="_blank">Dolibarr</a>, quand vous avez la liste des documents sur le tableau de bord, vous n&#8217;avez pas sous les yeux tous les devis et toutes les factures. En effet, il faut aller sur la fiche client pour voir les détails de chaque document (les 4 derniers).</p>
<p>Tout va bien client par client. Mais j&#8217;ai des clients qui font gérer leur secrétariat par la même société, donc j&#8217;ai un seul interlocuteur pour plusieurs clients, et il est plus difficile de sauter d&#8217;un client à l&#8217;autre.</p>
<p>Et puis ce petit hack permet de diminuer le nombre de clics pour arriver sur la bonne facture ou sur le bon devis.</p>
<h2>Pour les propositions commerciales (devis):</h2>
<p>Modifier le fichier <em>htdocs/includes/boxes/box_propales.php</em></p>
<p>ligne 73: modifier de</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql</span><span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; p.rowid, p.ref, p.fk_statut, p.datep as dp, p.datec, p.fin_validite, p.date_cloture&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>à</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql</span><span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot; p.rowid, p.ref, p.fk_statut, p.datep as dp, p.datec, p.fin_validite, p.date_cloture, p.total&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>ensuite, à partir de la ligne 121, modifier comme suit (ajout d&#8217;un bloc de code et renumérotation des suivants):</p>
<pre class="brush: php; title: ; notranslate">

$this-&gt;info_box_contents[$i][4] = array('td' =&gt; 'align=&quot;right&quot;',
'text' =&gt; dol_trunc(number_format($objp-&gt;total, 2, ',', ' '),40).&quot;€&quot;,
'url' =&gt; DOL_URL_ROOT.&quot;/comm/propal.php?id=&quot;.$objp-&gt;rowid);

$this-&gt;info_box_contents[$i][5] = array('td' =&gt; 'align=&quot;right&quot;',
'text' =&gt;dol_print_date($datec,'day'));

$this-&gt;info_box_contents[$i][6] = array('td' =&gt; 'align=&quot;right&quot; width=&quot;18&quot;',
'text' =&gt; $propalstatic-&gt;
LibStatut($objp-&gt;fk_statut,3));
</pre>
<h2>Les dernières factures client modifiées:</h2>
<p>Modifier le fichier <em>htdocs/includes/boxes/box_factures.php</em> ligne 75: modifier de</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT f.rowid as facid, f.facnumber, f.type, f.amount, f.datef as df&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>à</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT f.rowid as facid, f.facnumber, f.type, f.amount, f.datef as df, f.total_ttc&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>à partir de la ligne 128, modifier comme suit (ajout du premier bloc et renumérotation des blocs suivants):</p>
<pre class="brush: php; title: ; notranslate">
$this-&gt;info_box_contents[$i][4] = array('td' =&gt; 'align=&quot;right&quot;',
'text' =&gt; dol_trunc(number_format($objp-&gt;total_ttc, 2, ',', ' '),40).&quot;€&quot;,
'url' =&gt; DOL_URL_ROOT.&quot;/compta/facture.php?facid=&quot;.$objp-&gt;facid);

$this-&gt;info_box_contents[$i][5] = array('td' =&gt; 'align=&quot;right&quot;',
'text' =&gt; dol_print_date($datec,'day'),);

$this-&gt;info_box_contents[$i][6] = array('td' =&gt; 'align=&quot;right&quot; width=&quot;18&quot;',
'text' =&gt; $facturestatic-&gt;LibStatut($objp-&gt;paye,$objp-&gt;fk_statut,3));
</pre>
<h2>Les dernières factures client impayées</h2>
<p>Même chose que ci dessus, à adapter au fichier <em>htdocs/includes/boxes/box_factures_imp.php</em></p>
<h2>Résultat</h2>
<p style="text-align: center;"><a href="http://astuces.absolacom.com/wp-content/uploads/2011/04/dolibarr_montant_factures.png" target="_blank"><img class="aligncenter size-large wp-image-1087" title="dolibarr_montant_factures" src="http://astuces.absolacom.com/wp-content/uploads/2011/04/dolibarr_montant_factures-1024x152.png" alt="" width="1024" height="152" /></a></p>
<p>N&#8217;utilisant pas dolibarr pour les factures fournisseurs, si vous voulez faire la même chose, il vous suffit de modifier les fichiers adéquats dans le dossier <em>htdocs/includes/boxes/</em> de votre instalation dolibarr</p>
<h1>Le total des factures</h1>
<p>Maintenant qu&#8217;on a les montants de chaque facture, ce serait bien d&#8217;en avoir le total, en particulier pour les factures client impayées. C&#8217;est quand même pratique de savoir &laquo;&nbsp;l&#8217;argent qu&#8217;on a dehors&nbsp;&raquo; quand l&#8217;argent qu&#8217;on a dedans vient à manquer.</p>
<p><strong><span style="color: #ff0000;">Attention: Le total ne sera calculé que sur la limite d&#8217;affichage des factures dans la boite d&#8217;information. Si vous avez choisi d&#8217;afficher 10 factures seulement dans cette boite, même si vous avez 50 factures impayées, le total sera effectué sur les 10 factures seulement affichées!</span></strong></p>
<p>On va modifier à nouveau le fichier<em> htdocs/includes/boxes/box_factures_imp.php</em> .</p>
<p>On ajoute ligne 41 une variable qui va cumuler le total à chaque facture rencontrée</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$impayes</span><span style="color: #339933;">;</span></pre></div></div>

<p>Dans le bloc de code qu&#8217;on a ajouté pour avoir le montant, on ajoute une ligne (la dernière ci dessous, j&#8217;ai mis tout le bloc de code pour repérage facile dans le code)</p>
<pre class="brush: php; title: ; notranslate">
$this-&gt;info_box_contents[$i][4] = array('td' =&gt; 'align=&quot;right&quot;',
'text' =&gt; dol_trunc(number_format($objp-&gt;total_ttc, 2, ',', ' '),40),
'text2' =&gt; &quot; €&quot;,
'url' =&gt; DOL_URL_ROOT.&quot;/compta/facture.php?facid=&quot;.$objp-&gt;facid);
$impayes += number_format($objp-&gt;total_ttc, 2, '.', ' ');
</pre>
<p>Cette ligne va cumuler le total des factures, et il ne reste plus qu&#8217;à afficher le total en bas du bloc des factures. Afin d&#8217;être logique, le total sera sous la colonne des montants. Il faudra donc donner des éléments vides à l&#8217;array de construction pour placer le total au bon endroit. Ce qui se fait avec le code suivant:</p>
<pre class="brush: php; title: ; notranslate">
.....
$i++;
}
// code à ajouter ///////
$this-&gt;info_box_contents[$i][0] = array('td' =&gt; 'align=&quot;left&quot; width=&quot;16&quot;',);

$this-&gt;info_box_contents[$i][1] = array('td' =&gt; 'align=&quot;left&quot;',);

$this-&gt;info_box_contents[$i][2] = array('td' =&gt; 'align=&quot;left&quot; width=&quot;16&quot;',);

$this-&gt;info_box_contents[$i][3] = array('td' =&gt; 'align=&quot;left&quot;',);

$this-&gt;info_box_contents[$i][4] = array('td' =&gt; 'align=&quot;right&quot;',
'text' =&gt; dol_trunc($impayes,40),
'text2' =&gt; &quot; €&quot;,);
// fin de code à ajouter /////
if ($num==0) $this-&gt;info_box_contents[$i][0] = array('td' =&gt; 'align=&quot;center&quot;','text'=&gt;$langs-&gt;trans(&quot;NoUnpaidCustomerBills&quot;));
.....
</pre>
<p>Repérez vous grâce à la ligne $i++ pour placer le reste après, avant la ligne if ($num==0) &#8230;</p>
<h2>Résultat final</h2>
<p style="text-align: center;"><a href="http://astuces.absolacom.com/wp-content/uploads/2011/04/total_factures.png" target="_blank"><img class="aligncenter size-full wp-image-1091" title="total_factures" src="http://astuces.absolacom.com/wp-content/uploads/2011/04/total_factures.png" alt="" width="558" height="183" /></a></p>
<h2>Conclusion</h2>
<p>J&#8217;utilise ces modifications depuis plusieurs jours sans aucun soucis, et j&#8217;avoue que c&#8217;est bien plus pratique que l&#8217;affichage de base de Dolibarr.<br />
Notez que vous devrez ré-appliquer ces modifications après chaque mise à jour de Dolibarr.</p>
<p>Vous pouvez aussi télécharger <a href="http://astuces.absolacom.com/wp-content/uploads/2011/04/boxes.zip">les fichiers modifiés</a> que je met à votre disposition et les copier dans votre installation de Dolibarr.</p>
]]></content:encoded>
			<wfw:commentRss>http://astuces.absolacom.com/logiciel/dolibarr-3-0-avoir-le-montant-des-facturesdevis-sur-les-boites-daccueil/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installer un serveur LAMP avec Ubuntu</title>
		<link>http://astuces.absolacom.com/ubuntu/installer-un-serveur-lamp-avec-ubuntu/</link>
		<comments>http://astuces.absolacom.com/ubuntu/installer-un-serveur-lamp-avec-ubuntu/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 08:33:40 +0000</pubDate>
		<dc:creator>manuberro</dc:creator>
				<category><![CDATA[developpement]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[logiciel]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[système]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[mail]]></category>

		<guid isPermaLink="false">http://astuces.absolacom.com/?p=357</guid>
		<description><![CDATA[Un serveur LAMP signifie Linux Apache Mysql Php. Il est possible d&#8217;installer et configurer chacun des services manuellement, mais il existe une autre façon plus simple et moins connue de faire tout ceci en une seule fois. Dans un terminal, entrez ceci: sudo tasksel install lamp-server Et c&#8217;est tout! Ou alors: sudo tasksel Et sélectionnez [...]]]></description>
			<content:encoded><![CDATA[<p>Un serveur LAMP signifie <strong>L</strong>inux <strong>A</strong>pache <strong>M</strong>ysql <strong>P</strong>hp. Il est possible d&#8217;installer et configurer chacun des services manuellement, mais il existe une autre façon plus simple et moins connue de faire tout ceci en une seule fois.</p>
<p>Dans un terminal, entrez ceci:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> tasksel <span style="color: #c20cb9; font-weight: bold;">install</span> lamp-server</pre></div></div>

<p>Et c&#8217;est tout!</p>
<p>Ou alors:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> tasksel</pre></div></div>

<p><a href="http://astuces.absolacom.com/wp-content/uploads/2009/12/tasksel.png"><img class="aligncenter size-thumbnail wp-image-358" title="tasksel" src="http://astuces.absolacom.com/wp-content/uploads/2009/12/tasksel-150x150.png" alt="tasksel" width="150" height="150" /></a></p>
<p>Et sélectionnez LAMP server, ou tout autre service que vous désirez installer.</p>
]]></content:encoded>
			<wfw:commentRss>http://astuces.absolacom.com/ubuntu/installer-un-serveur-lamp-avec-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Utilisation de Bazaar</title>
		<link>http://astuces.absolacom.com/ubuntu/utilisation-de-bazaar/</link>
		<comments>http://astuces.absolacom.com/ubuntu/utilisation-de-bazaar/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 15:00:00 +0000</pubDate>
		<dc:creator>manuberro</dc:creator>
				<category><![CDATA[developpement]]></category>
		<category><![CDATA[logiciel]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[programmation]]></category>

		<guid isPermaLink="false">http://astuces.absolacom.com/?p=98</guid>
		<description><![CDATA[Bazaar est un gestionnaire de version. L&#8217;un de ses avantages est qu&#8217;il permet d&#8217;utiliser les protocoles ssh ou ftp, ce qui signifie qu&#8217;il n&#8217;est pas nécessaire de monter un &#171;&#160;serveur&#160;&#187; bazaar pour l&#8217;utiliser; il suffit d&#8217;un serveur où vous pouvez vous connecter en ssh. Classement des dossiers L&#8217;organisation des dossiers est laissée à votre goût, [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Bazaar" href="http://doc.ubuntu-fr.org/bazaar" target="_blank">Bazaar</a> est un gestionnaire de version. L&#8217;un de ses avantages est qu&#8217;il permet d&#8217;utiliser les protocoles ssh ou ftp, ce qui signifie qu&#8217;il n&#8217;est pas nécessaire de monter un &laquo;&nbsp;serveur&nbsp;&raquo; bazaar pour l&#8217;utiliser; il suffit d&#8217;un serveur où vous pouvez vous connecter en ssh.</p>
<h2>Classement des dossiers</h2>
<p>L&#8217;organisation des dossiers est laissée à votre goût, mais pour simplifier les explications, voici l&#8217;organisation que nous allons adopter sur le serveur:</p>
<ul>
<li>Un dossier à la racine nommé <em>bzr</em> qui contiendra les divers projets à versionner</li>
<li>Un dossier par projet dans le dossier /bzr (<em>projet1</em> et <em>projet2</em> )</li>
<li>Les droits en lecture/écriture pour les membres du groupe <em>projet</em>s sur le dossier /bzr (récursivement)</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">addgroup projets              <span style="color: #666666; font-style: italic;"># ajout d'un groupe projets</span>
adduser manu projets        <span style="color: #666666; font-style: italic;"># ajout de l'utilisateur au groupe projets</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>bzr<span style="color: #000000; font-weight: bold;">/</span>projet1         <span style="color: #666666; font-style: italic;"># création du dossier du premier projet</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>bzr<span style="color: #000000; font-weight: bold;">/</span>projet2         <span style="color: #666666; font-style: italic;"># création du dossier du deuxième projet</span>
<span style="color: #c20cb9; font-weight: bold;">chgrp</span> <span style="color: #660033;">-R</span> projets <span style="color: #000000; font-weight: bold;">/</span>bzr         <span style="color: #666666; font-style: italic;"># attribution du groupe projet à tous les fichiers du répertoire /bzr</span>
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #660033;">-R</span> g+rw <span style="color: #000000; font-weight: bold;">/</span>bzr          <span style="color: #666666; font-style: italic;"># attribution des droits en lecture/écriture à tous les fichiers pour les membres du groupe projets</span></pre></div></div>

<p>Il n&#8217;est pas nécessaire d&#8217;installer bazaar sur le serveur, mais il est nécessaire que l&#8217;accès par ssh fonctionne, avec ou <a title="Identification ssh sans mot de passe" href="http://astuces.absolacom.com/?p=80" target="_blank">sans mot de passe</a>.</p>
<h2>Sur les clients</h2>
<h3>Mise en place du projet sur le serveur</h3>
<p>Ce sont les clients (qui vont modifier le code des projets) qui doivent installer le logiciel bazaar</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> bzr python-paramiko</pre></div></div>

<p>Les préférences de bazaar (limitées) se trouvent dans <em>Système/Préférences/Bazaar preferences</em></p>
<p>Ce sont eux, aussi, qui vont initier le versionning, à l&#8217;endroit qui leur va bien:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>projets
<span style="color: #c20cb9; font-weight: bold;">mv</span> ~<span style="color: #000000; font-weight: bold;">/</span>Bureau<span style="color: #000000; font-weight: bold;">/</span>monprojet ~<span style="color: #000000; font-weight: bold;">/</span>projets <span style="color: #666666; font-style: italic;"># déplacement des fichiers du prototype dans les projets</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>projets<span style="color: #000000; font-weight: bold;">/</span>monprojet
bzr init                        <span style="color: #666666; font-style: italic;"># initialisation du versionning du projet</span>
bzr add <span style="color: #000000; font-weight: bold;">*</span>                    <span style="color: #666666; font-style: italic;"># ajout de tous les fichiers (récursif) au versionning</span>
bzr commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Création&quot;</span> <span style="color: #666666; font-style: italic;"># prise en compte des modifications avec le commentaire &quot;Création&quot;</span>
bzr push sftp:<span style="color: #000000; font-weight: bold;">//</span>manu<span style="color: #000000; font-weight: bold;">@</span>server<span style="color: #000000; font-weight: bold;">/</span>bzr<span style="color: #000000; font-weight: bold;">/</span>projet1 <span style="color: #660033;">--use-existing-dir</span> <span style="color: #666666; font-style: italic;"># envoi de la version du projet sur le serveur en utilisant les répertoires créés plus haut.</span></pre></div></div>

<h3>Récupération des fichiers sur un autre client</h3>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>beauprojet     <span style="color: #666666; font-style: italic;"># création du dossier qui va accueillir le projet</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>beauprojet
bzr init                     <span style="color: #666666; font-style: italic;"># initialisation du dossier au versionning</span>
bzr merge sftp:<span style="color: #000000; font-weight: bold;">//</span>toto<span style="color: #000000; font-weight: bold;">@</span>server<span style="color: #000000; font-weight: bold;">/</span>bzr<span style="color: #000000; font-weight: bold;">/</span>projet1<span style="color: #000000; font-weight: bold;">/</span>  <span style="color: #666666; font-style: italic;"># intégration des fichiers de &quot;monprojet&quot; dans le dossier &quot;beauprojet&quot; dans lequel on se trouve</span></pre></div></div>

<p>Chacun des clients possède maintenant les fichiers sur lesquels effectuer les développements</p>
<h3>Codage!</h3>
<p>Les clients vont effectuer les modifications sur les documents. Après chaque modification (enfin, chaque fin de bloc de modification) ou avant l&#8217;envoi des fichiers modifiés, il faudra effectuer la commande suivante (qu&#8217;ils aient décidé ou non d&#8217;envoyer les fichiers sur le serveur. Les commit peuvent être fait hors connexion.):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">bzr commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;message&quot;</span></pre></div></div>

<p>qui permet de prendre en compte les modifications effectuées dans le versionning et, accessoirement, de revenir à une version antérieure.</p>
<p>Il suffit ensuite &laquo;&nbsp;d&#8217;assembler&nbsp;&raquo; les fichiers modifiés avec ceux du serveur, que ceux ci aient été modifiés ou non par une autre personne:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">bzr merge sftp:<span style="color: #000000; font-weight: bold;">//</span>toto<span style="color: #000000; font-weight: bold;">@</span>server<span style="color: #000000; font-weight: bold;">/</span>bzr<span style="color: #000000; font-weight: bold;">/</span>projet1<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Enfin, les fichiers &laquo;&nbsp;finaux&nbsp;&raquo; sont envoyés sur le serveur afin d&#8217;être disponibles pour tous les développeurs:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">bzr push sftp:<span style="color: #000000; font-weight: bold;">//</span>toto<span style="color: #000000; font-weight: bold;">@</span>server<span style="color: #000000; font-weight: bold;">/</span>bzr<span style="color: #000000; font-weight: bold;">/</span>projet1<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<h2>A retenir</h2>
<ul>
<li>Il ne suffit pas d&#8217;ajouter un fichier/dossier au répertoire du projet pour qu&#8217;il soit pris en compte. Il faut le faire manuellement avec <strong>bzr add <em>lefichier</em></strong></li>
<li>Pour supprimer un fichier, il faut utiliser <strong>bzr remove <em>lefichier</em></strong></li>
<li>la commande <strong>bzr status</strong> permet de savoir l&#8217;état des fichier (plus exactement, du versionning)</li>
<li>La commande <strong>bzr log</strong> permet de voir le log des changements avec les commentaires</li>
<li>la commande <strong>bzr conflicts</strong> affiche les versions de fichiers en conflits</li>
<li>La commande <strong>bzr resolve</strong> <em><strong>lefichier</strong></em> permet de résoudre les conflits dans le fichier <em>lefichier</em></li>
<li>Le manuel de <strong>bzr</strong> donne plein d&#8217;informations et de commandes utilisables</li>
</ul>
<h2>Interface graphique</h2>
<p>Il existe une interface graphique pour bazaar nommée olive (paquet bzr-gtk) que je n&#8217;ai pas réussi à utiliser: impossible de comprendre les messages d&#8217;erreur (pas parlant) et pas trouvé de configuration à effectuer (ni dans le programme, ni dans les fichiers de configuration).</p>
<p>Pas grave, je suis un adepte de la ligne de commande.</p>
<h3>Autres sources:</h3>
<p><a title="Documentation Bazaar" href="http://bazaar-vcs.org/fr/IntroductionABzr" target="_blank">http://bazaar-vcs.org/fr/IntroductionABzr</a></p>
]]></content:encoded>
			<wfw:commentRss>http://astuces.absolacom.com/ubuntu/utilisation-de-bazaar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Créer (compiler et packager) ses programmes en paquet .deb pour ubuntu ou debian</title>
		<link>http://astuces.absolacom.com/ubuntu/creer-compiler-et-packager-ses-programmes-en-paquet-deb-pour-ubuntu-ou-debian/</link>
		<comments>http://astuces.absolacom.com/ubuntu/creer-compiler-et-packager-ses-programmes-en-paquet-deb-pour-ubuntu-ou-debian/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 22:23:57 +0000</pubDate>
		<dc:creator>manuberro</dc:creator>
				<category><![CDATA[developpement]]></category>
		<category><![CDATA[logiciel]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[deb]]></category>
		<category><![CDATA[depot]]></category>
		<category><![CDATA[package]]></category>
		<category><![CDATA[paquet]]></category>

		<guid isPermaLink="false">http://astuces.absolacom.com/?p=24</guid>
		<description><![CDATA[Le programme Debdevel permet de créer facilement et rapidement des paquet deb pouvant être installés sur Ubuntu, mais aussi toutes les dérivées de debian utilisant le gestionnaire de paquets apt (knoppix, mepis, &#8230;), à partir de vos propres programmes ou à partir de sources d&#8217;autres programmes. Vous pourrez packager vos programmes, quel que soit le [...]]]></description>
			<content:encoded><![CDATA[<p>Le programme <strong>Debdevel</strong> permet de créer facilement et rapidement des paquet deb pouvant être installés sur Ubuntu, mais aussi toutes les dérivées de debian utilisant le gestionnaire de paquets apt (knoppix, mepis, &#8230;), à partir de vos propres programmes ou à partir de sources d&#8217;autres programmes.</p>
<p>Vous pourrez packager vos programmes, quel que soit le language de programmation (python, bash, C, &#8230;), voire même des documentations, fiches techniques, fichiers texte, &#8230; (bien que l&#8217;intérêt en soit limité, ça reste possible).</p>
<p>Mais ce logiciel (cette suite de logiciels, en fait), va plus loin, puisqu&#8217;elle vous permet aussi de:</p>
<ul>
<li>Générer automatiquement des squelettes de documentation qu&#8217;il ne reste plus qu&#8217;à remplir (il est possible de rajouter vos propres modèles de documentation, au format voulu),</li>
<li>Créer un dépôt personnel en local,</li>
<li>Gérer un dépôt public (local ou distant),</li>
<li>Gérer trois niveaux de développement (dev, beta et stable),</li>
<li>Publier seulement l&#8217;un ou plusieurs niveaux de développement, et garder les autres privés,</li>
<li>Gérer autant de paquets que désiré, dans chacun des niveaux de développement,</li>
<li>Gérer autant de dépôts que désiré,</li>
<li>Tout faire graphiquement, sans ligne de commande ,</li>
<li>Tout fonctionne avec le clic droit de nautilus (bientôt konqueror et dolphin pour les utilisateurs de KDE, mais les logiciels fonctionnent cependant en ligne de commande avec KDE) ,</li>
<li>Trouver facilement une dépendance dans l&#8217;ensemble de vos paquets,</li>
<li>Trouver facilement et rapidement un terme ou du code dans l&#8217;ensemble des scripts de vos paquets,</li>
<li>Et d&#8217;autres choses en cours de développement.</li>
</ul>
<p><img src="http://docu.absolacom.com/lib/exe/fetch.php/absolacom:developpements:debdevel:debdevel-tools_docskel_docuwiki_start.png" alt="Menu du clic droit" width="550" height="350" align="center" /></p>
<p>Bref, il faut 3 minutes sans connaissance particulière pour créer un dépôt, 3 minutes pour créer un paquet et y installer votre programme, 1 minute pour en faire un paquet deb et une minute pour le rendre public et accessible à vos utilisateurs par leur gestionnaire de paquet (apt-get, aptitude ou synaptic) qui les avertira automatiquement lorsqu&#8217;une mise à jour sera disponible. Et la mise à jour d&#8217;un paquet (en dehors du temps de correction de votre programme) prend moins d&#8217;une minute.</p>
<p>De quoi développer rapidement et facilement, sans se préoccuper de gérer les versions ou craindre de mélanger les programmes de dev avec les versions publiques, et éviter de passer du temps à se demander comment créer un paquet deb pour les publier!</p>
<p>Précisons quand même que ce programme <span style="text-decoration: underline;">ne développera pas de programmes à votre place</span> mais vous simplifiera le packaging et la distribution de ceux ci.</p>
<p>La documentation est accessible <a title="Documentation de debdevel" href="http://docu.absolacom.com/doku.php/absolacom:developpements:debdevel" target="_blank">ici</a> . Elle vous indique toutes les procédures, du téléchargement à l&#8217;utilisation.</p>
]]></content:encoded>
			<wfw:commentRss>http://astuces.absolacom.com/ubuntu/creer-compiler-et-packager-ses-programmes-en-paquet-deb-pour-ubuntu-ou-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

