<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikibr.binets.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Michel.blancard</id>
	<title>WikiBR - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wikibr.binets.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Michel.blancard"/>
	<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/Sp%C3%A9cial:Contributions/Michel.blancard"/>
	<updated>2026-05-11T18:05:11Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7914</id>
		<title>Modèle:Réunions2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7914"/>
		<updated>2014-01-29T20:08:01Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : ag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Réunion:2014-01-29_Assemblée_Générale|Assemblée Générale de 2014]]&lt;br /&gt;
* [[Réunion:2013-05-12_Réunion_DSI_Aile_0|Réunion avec la DSI sur la réfection de l'aile 0]]&lt;br /&gt;
* [[Réunion:2013-05-12_Réunion_FedeRez|Réunion FedeRez du 12 mai 2013]]&lt;br /&gt;
* [[Réunion:2013-05-01_2e_reunion_du_BR|2e Réunion BR 2011 du 01 mai 2013]]&lt;br /&gt;
* [[Réunion:2012-03-27_Réunion_BCX|Réunion sur les impressions à la BCX]]&lt;br /&gt;
* [[Réunion:2012-03-27_Réunion_GEIDE|Réunion sur le cloud storage]]&lt;br /&gt;
* [[Réunion:2012-03-19_Réunion_CU|Réunion du Comité Utilisateur du 19 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-03-14_Réunion_DSI|Réunion DSI du 14 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-02-14_Réunion_DSI|Réunion DSI du 14 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-13_Assemblée_Générale|Assemblée Générale du 13 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-12_Réunion_SOI|Réunion SOI du 12 février 2013]]&lt;br /&gt;
* [[Réunion:2013-01-17_Réunion_DSI|Réunion DSI du 17 janvier 2013]]&lt;br /&gt;
* [[Réunion:2013-01-16_1ere_reunion_du_BR|1ère Réunion BR 2011 du 16 janvier 2013]]&lt;br /&gt;
* [[Réunion:2012-12-20_Kes-BR| Réunion avec la Kès du 20 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-12-19_Magnan_BR-ENSTA|Magnan-BR du 19 décembre 2012, avec l'ENSTA]]&lt;br /&gt;
* [[Réunion:2012-12-04_Réunion_CD|Réunion du Comité Directeur du 04 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-11-23_Réunion_CU|Réunion du Comité Utilisateur du 23 novembre 2012]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Ubuntu&amp;diff=7863</id>
		<title>Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Ubuntu&amp;diff=7863"/>
		<updated>2013-05-19T13:37:07Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Survivre sur le plâtal avec Ubuntu.&lt;br /&gt;
&lt;br /&gt;
==Comment configurer Ubuntu==&lt;br /&gt;
&lt;br /&gt;
===Configuration de la connexion réseau===&lt;br /&gt;
&lt;br /&gt;
Pour configurer ta connexion dans ton casert, clique sur le bouton réseau en haut à droite, puis sur le menu &amp;quot;Edit connections&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuration du proxy===&lt;br /&gt;
&lt;br /&gt;
La configuration du proxy se fait dans &amp;quot;System settings&amp;quot;, &amp;quot;Network&amp;quot;, &amp;quot;Network proxy&amp;quot;. Trois choix sont proposés :&lt;br /&gt;
* None : tu ne peux accéder qu'au réseau interne : http://frankiz, ftp://miroir, http://fruits, ftp://biscotte:6?, ...&lt;br /&gt;
* Manual : configuré à 129.104.247.2:8080 (ou kuzh:8080) partout (seuls les 3 premières lignes sont utiles en fait), tu ne peux accéder qu'à l'internet, mais pas au réseau interne.&lt;br /&gt;
* Automatic : avec http://config/proxy.pac, tu a accès au réseau interne et à l'internet en même temps. Cependant, certains logiciels comprennent pas cette configuration automatique, comme Dropbox, apt...&lt;br /&gt;
&lt;br /&gt;
Lorsque tu enregistres la configuration, le système édite des variables globales (comme http_proxy lorsque la config est &amp;quot;Manual&amp;quot;) et répercute les changements dans la configuration d'un certain nombre de logiciels, comme firefox, apt... avec un succès relatif.&lt;br /&gt;
&lt;br /&gt;
===Configurations particulières===&lt;br /&gt;
&lt;br /&gt;
====Firefox====&lt;br /&gt;
&lt;br /&gt;
Firefox se conforme très bien à la configuration du système lorsque l'option &amp;quot;Use system proxy settings&amp;quot; est choisie dans &amp;quot;Edit&amp;quot;/&amp;quot;Preferences&amp;quot;/&amp;quot;Advanced&amp;quot;/&amp;quot;Network&amp;quot;/&amp;quot;Connextion&amp;quot;/&amp;quot;Settings&amp;quot;. Il est parfois nécessaire de redémarrer firefox lorsque la configuration réseau change pour que les changements prennent effet.&lt;br /&gt;
&lt;br /&gt;
====apt====&lt;br /&gt;
&lt;br /&gt;
apt, curieusement, fait pas mal de la merde lorsque la configuration du proxy est en automatique : cela reviens à pas de proxy du tout. Donc il faut :&lt;br /&gt;
* soit modifier la conf de apt en ligne de commande (dans /etc/apt), au risque de devoir le refaire à chaque modification de la configuration du proxy qui modifie la conf de apt.&lt;br /&gt;
* soit se contenter de ftp://miroir dont la connexion ne requiert pas de proxy&lt;br /&gt;
&lt;br /&gt;
====Dropbox====&lt;br /&gt;
&lt;br /&gt;
Dropbox est un sacré coquin et j'ai mis du temps à comprendre comment le faire marcher avec le proxy.&lt;br /&gt;
&lt;br /&gt;
Déjà, lire l'article suivant : [http://doc.ubuntu-fr.org/dropbox].&lt;br /&gt;
&lt;br /&gt;
Dropbox s'installe plus ou moins avec les commandes suivantes (l'ajout de fautes est volontaire, contacte un BRman si tu ne sais vraiment pas ce que tu fais) :&lt;br /&gt;
 sudo apt-get updat&lt;br /&gt;
 sudo apt-get install notilus-dropbox&lt;br /&gt;
 drpbox start -i&lt;br /&gt;
 wget htp://www.getdropox.com/download?plat=lnx.x86&lt;br /&gt;
 tar ...&lt;br /&gt;
 mv ...&lt;br /&gt;
 dropbx start&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite configurer dropbox pour fonctionner avec le proxy kuzh, car sinon dropbox sera muet dès le redémarrage de l'ordi (menus inaccessibles, pas de synchronisation). En effet, lorsque dropbox est configuré par défaut, dropbox ne fonctionne que si l'ordi a été redémarré avec la configuration du proxy en &amp;quot;Manual&amp;quot;. Si tu rencontre le problème de dropbox complètement muet, il faut donc changer la configuration du proxy en &amp;quot;Manual&amp;quot;, redémarrer l'ordi, puis dropbox devrait marcher après le redémarrage. Il est ensuite possible de revenir à la configuration automatique du proxy.&lt;br /&gt;
&lt;br /&gt;
====Github====&lt;br /&gt;
&lt;br /&gt;
déjà sur le wikibr&lt;br /&gt;
&lt;br /&gt;
====Thunderbird====&lt;br /&gt;
&lt;br /&gt;
déjà sur le wikibr ou sur l'infoBR 2011&lt;br /&gt;
&lt;br /&gt;
====flash====&lt;br /&gt;
&lt;br /&gt;
déjà sur le wikibr&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Ubuntu&amp;diff=7862</id>
		<title>Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Ubuntu&amp;diff=7862"/>
		<updated>2013-05-19T13:33:10Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : Page créée avec « Survivre sur le plâtal avec Ubuntu.  ==Comment configurer Ubuntu==  ===Configuration de la connexion réseau===  Pour configurer ta connexion dans ton casert, clique sur le ... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Survivre sur le plâtal avec Ubuntu.&lt;br /&gt;
&lt;br /&gt;
==Comment configurer Ubuntu==&lt;br /&gt;
&lt;br /&gt;
===Configuration de la connexion réseau===&lt;br /&gt;
&lt;br /&gt;
Pour configurer ta connexion dans ton casert, clique sur le bouton réseau en haut à droite, puis sur le menu &amp;quot;Edit connections&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configuration du proxy===&lt;br /&gt;
&lt;br /&gt;
La configuration du proxy se fait dans &amp;quot;System settings&amp;quot;, &amp;quot;Network&amp;quot;, &amp;quot;Network proxy&amp;quot;. Trois choix sont proposés :&lt;br /&gt;
* None : tu ne peux accéder qu'au réseau interne : http://frankiz, ftp://miroir, http://fruits, ftp://biscotte:6?, ...&lt;br /&gt;
* Manual : configuré à 129.104.247.2:8080 (ou kuzh:8080) partout, tu ne peux accéder qu'à l'internet, mais pas au réseau interne.&lt;br /&gt;
* Automatic : avec http://config/proxy.pac, tu a accès au réseau interne et à l'internet en même temps. Cependant, certains logiciels comprennent pas cette configuration automatique comme Dropbox, apt...&lt;br /&gt;
&lt;br /&gt;
Lorsque tu enregistres la configuration, le système édite des variables globales (comme http_proxy lorsque la config est &amp;quot;Manual&amp;quot;) et répercute les changements dans la configuration d'un certain nombre de logiciels, comme firefox, apt...&lt;br /&gt;
&lt;br /&gt;
===Configuration particulières===&lt;br /&gt;
&lt;br /&gt;
====Firefox====&lt;br /&gt;
&lt;br /&gt;
Firefox se conforme très bien à la configuration du système lorsque l'option &amp;quot;Use system proxy settings&amp;quot; est choisie dans &amp;quot;Edit&amp;quot;/&amp;quot;Preferences&amp;quot;/&amp;quot;Advanced&amp;quot;/&amp;quot;Network&amp;quot;/&amp;quot;Connextion&amp;quot;/&amp;quot;Settings&amp;quot;. Il est parfois nécessaire de redémarrer firefox lorsque la configuration réseau change pour que les changements prennent effet.&lt;br /&gt;
&lt;br /&gt;
====apt====&lt;br /&gt;
&lt;br /&gt;
apt, curieusement, fait pas mal de la merde lorsque la configuration du proxy est en automatique : cela reviens à pas de proxy du tout. Donc il faut :&lt;br /&gt;
* soit modifier la conf de apt en ligne de commande (dans /etc/apt), au risque de devoir le refaire à chaque modification de la configuration du proxy qui modifie la conf de apt.&lt;br /&gt;
* soit se contenter de ftp://miroir dont la connexion ne requiert pas de proxy&lt;br /&gt;
&lt;br /&gt;
====Dropbox====&lt;br /&gt;
&lt;br /&gt;
Dropbox est un sacré coquin et j'ai mis du temps à comprendre comment le faire marcher avec le proxy.&lt;br /&gt;
&lt;br /&gt;
Déjà, lire l'article suivant : [http://doc.ubuntu-fr.org/dropbox].&lt;br /&gt;
&lt;br /&gt;
Dropbox s'installe plus ou moins avec les commandes suivantes (l'ajout de fautes est volontaire, contacte un BRman si tu ne sais vraiment pas ce que tu fais) :&lt;br /&gt;
 sudo apt-get updat&lt;br /&gt;
 sudo apt-get install notilus-dropbox&lt;br /&gt;
 drpbox start -i&lt;br /&gt;
 wget htp://www.getdropox.com/download?plat=lnx.x86&lt;br /&gt;
 tar ...&lt;br /&gt;
 mv ...&lt;br /&gt;
 dropbx start&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite configurer dropbox pour fonctionner avec le proxy kuzh, car sinon dropbox sera muet dès le redémarrage de l'ordi (menus inaccessibles, pas de synchronisation). En effet, lorsque dropbox est configuré par défaut, dropbox ne fonctionne que si l'ordi a été redémarré avec la configuration du proxy en &amp;quot;Manual&amp;quot;. Si tu rencontre le problème de dropbox complètement muet, il faut donc changer la configuration du proxy en &amp;quot;Manual&amp;quot;, redémerrer l'ordi, puis dropbox devrait marcher après le redémarrage.&lt;br /&gt;
&lt;br /&gt;
====Github====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Thunderbird====&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=RespoBar&amp;diff=7861</id>
		<title>RespoBar</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=RespoBar&amp;diff=7861"/>
		<updated>2013-05-14T22:47:40Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : déplacement de la page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page a été déplacée à l'adresse [http://wikix.polytechnique.org/Respo_bar].&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7849</id>
		<title>Modèle:Réunions2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7849"/>
		<updated>2013-05-12T18:43:57Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : création réunion federez&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Réunion:2013-05-12_Réunion_FedeRez|Réunion FedeRez du 12 mai 2013]]&lt;br /&gt;
* [[Réunion:2013-05-01_2e_reunion_du_BR|2e Réunion BR 2011 du 01 mai 2013]]&lt;br /&gt;
* [[Réunion:2012-03-27_Réunion_BCX|Réunion sur les impressions à la BCX]]&lt;br /&gt;
* [[Réunion:2012-03-27_Réunion_GEIDE|Réunion sur le cloud storage]]&lt;br /&gt;
* [[Réunion:2012-03-19_Réunion_CU|Réunion du Comité Utilisateur du 19 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-03-14_Réunion_DSI|Réunion DSI du 14 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-02-14_Réunion_DSI|Réunion DSI du 14 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-13_Assemblée_Générale|Assemblée Générale du 13 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-12_Réunion_SOI|Réunion SOI du 12 février 2013]]&lt;br /&gt;
* [[Réunion:2013-01-17_Réunion_DSI|Réunion DSI du 17 janvier 2013]]&lt;br /&gt;
* [[Réunion:2013-01-16_1ere_reunion_du_BR|1ère Réunion BR 2011 du 16 janvier 2013]]&lt;br /&gt;
* [[Réunion:2012-12-20_Kes-BR| Réunion avec la Kès du 20 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-12-19_Magnan_BR-ENSTA|Magnan-BR du 19 décembre 2012, avec l'ENSTA]]&lt;br /&gt;
* [[Réunion:2012-12-04_Réunion_CD|Réunion du Comité Directeur du 04 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-11-23_Réunion_CU|Réunion du Comité Utilisateur du 23 novembre 2012]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7835</id>
		<title>Modèle:Réunions2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7835"/>
		<updated>2013-05-01T18:51:02Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : ajout réunion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Réunion:2013-05-01_2e_reunion_du_BR|2e Réunion BR 2011 du 01 mai 2013]]&lt;br /&gt;
* [[Réunion:2012-03-27_Réunion_BCX|Réunion sur les impressions à la BCX]]&lt;br /&gt;
* [[Réunion:2012-03-27_Réunion_GEIDE|Réunion sur le cloud storage]]&lt;br /&gt;
* [[Réunion:2012-03-19_Réunion_CU|Réunion du Comité Utilisateur du 19 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-03-14_Réunion_DSI|Réunion DSI du 14 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-02-14_Réunion_DSI|Réunion DSI du 14 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-13_Assemblée_Générale|Assemblée Générale du 13 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-12_Réunion_SOI|Réunion SOI du 12 février 2013]]&lt;br /&gt;
* [[Réunion:2013-01-17_Réunion_DSI|Réunion DSI du 17 janvier 2013]]&lt;br /&gt;
* [[Réunion:2013-01-16_1ere_reunion_du_BR|1ère Réunion BR 2011 du 16 janvier 2013]]&lt;br /&gt;
* [[Réunion:2012-12-20_Kes-BR| Réunion avec la Kès du 20 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-12-19_Magnan_BR-ENSTA|Magnan-BR du 19 décembre 2012, avec l'ENSTA]]&lt;br /&gt;
* [[Réunion:2012-12-04_Réunion_CD|Réunion du Comité Directeur du 04 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-11-23_Réunion_CU|Réunion du Comité Utilisateur du 23 novembre 2012]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=RespoBar&amp;diff=7831</id>
		<title>RespoBar</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=RespoBar&amp;diff=7831"/>
		<updated>2013-04-28T21:46:34Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : mise en forme&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Respo bar(ou comment subir efficacement)=&lt;br /&gt;
&lt;br /&gt;
==Ouverture du bar==&lt;br /&gt;
* Choisir un groupe de respobars, idéalement trois ou quatre&lt;br /&gt;
* Ouvrir un compte courant pour le Bar d'étage, la banque dépends de votre section&lt;br /&gt;
** LCL : Judo, Natation, Escrime, Aviron, Escalade&lt;br /&gt;
** BNP : Tennis, Hand, Bad, Volley, Raid&lt;br /&gt;
** SG : Foot, Rugby, Basket, Poney, Boxe&lt;br /&gt;
* Il faut choisir un trésorier, qui sera titulaire du compte, le mieux étant de désigner un trésorier adjoint dans les respos bars (qui pourra signer les chèques en l’absence du premier), et donner procuration aux respos restants sur le compte, pour parer à toute forme de problème.&lt;br /&gt;
* Récupérer la carte bleue du bar et le chéquier pour pouvoir commencer à faire des courses (les appros).&lt;br /&gt;
&lt;br /&gt;
==La compta==&lt;br /&gt;
Point essentiel, le logiciel est en train d'être repensé, et réécrit pour remplacer une version actuellement assez peu fonctionnelle, dans l'état actuel des choses, le mieux est de tenir une comptabilité annexe sur une feuille excel.&lt;br /&gt;
* Les renseignements à demander à l'ouverture du compte, et à bien se faire préciser (le banquier de l'x n'est pas souvent le plus renseigné au monde...)&lt;br /&gt;
** Découvert autorisé (souvent 300€ sur 30 jours glissants, en gros vous pouvez descendre gratuitement jusque -300€ sur le compte, et moins de 30 jours après la mise en négatif, vous devez positiver votre solde. Après il y a des agios)&lt;br /&gt;
** Plafond de retrait par mois (à ne pas négliger, la consommation d'un gros bar oscille entre 4000€ et 5000€ par mois en moyenne, bien au delà des standards bancaires pour un compte particulier, c'est bête de pas avoir à manger pour une histoire de plafond mal placé)&lt;br /&gt;
* Pour faire une remise de chèque, au moins signer au dos de chaque chèque (marquer aussi le numéro du compte peut s'avérer utile), remplir un bordereau de remise. Dans la plupart des banques le détail des chèques remis n'est pas demandé, pas besoin de le remplir (et à raison de 15 chèques par semaine ça devient vite long)&lt;br /&gt;
* Penser à garder tous les documents, relevés de comptes, tickets de caisse et autres traces de ce que vous avez fait comme opérations.&lt;br /&gt;
&lt;br /&gt;
==La fascisation==&lt;br /&gt;
* Amendes, si tu loggue pas, tu raques !&lt;br /&gt;
* Faire des affiches partout pour expliquer au jeune Taupin le fonctionnement de l'éponge, l'effet de la gravité sur l'eau (elle coule vers le bas en généralement), bref la base du sens commun reste déjà beaucoup trop longue à expliquer pour se lancer dans des considérations plus élaborées...&lt;br /&gt;
* Tours de nettoyage : ça peut être une bonne idée de désigner des respos propreté par semaine pour fasciser et nettoyer ce qui l'à pas été pour que ce soit pas tout le temps les mêmes qui trinquent.&lt;br /&gt;
* Agios : à activer pour ne pas avoir à courir après les chèques, étrangement après ils accourent tout seuls.&lt;br /&gt;
&lt;br /&gt;
==Le log==&lt;br /&gt;
* Le fonctionnement du logiciel est assez erratique, si vous arrivez à rentrer vos appros correctement, vous m'expliquerez. L'essentiel est de créer les aliments au bon tarif, avec une taxe de 20%, ce qui permet de payer les produits open (épices/sauces/poeles, ... à vous de voir). Encore une fois, celui ci va être refait.&lt;br /&gt;
&lt;br /&gt;
==Les appros==&lt;br /&gt;
Vous pouvez toujours aller faire les courses avec une voiture à Cora ou Auchan (voir sur le wikix), mais ça devient rapidement lassant à raison d'un voyage par semaine. Pour ce qui est des livraisons, il existe deux types de supermarché en ligne :&lt;br /&gt;
* La plupart des enseignes font un service ad-hoc, schématiquement vous commandez, un mec du magasin se ballade pour vous dans les rayons, remplis un caddie et vous l'apporte. L'avantage : il y a beaucoup plus de magasins dispos, donc de moyen de changer si ça vous convient pas. L'inconvénient : des limitations en quantité achetée et en volume, comme en variété des produits disponibles.&lt;br /&gt;
** Intermarché : http://drive.intermarche.com/ livreur très sympa et très arrangeant, mais le magasin est tout le temps vide, et c'est presque impossible d'avoir ce qu'on veut en quantité. De la même manière, une limitation à 300 ou 400€ par commande.&lt;br /&gt;
** Auchan : www.auchandirect.fr/ Possibilité d'être livré du jour au lendemain, limite à 500€ et en volume de liquide transporté (donc de bière).&lt;br /&gt;
** Cora : http://www.houra.fr/ Pas testé&lt;br /&gt;
* Deux enseignes ont un vrai service de livraison pro (séparé du magasin) et font du gros.&lt;br /&gt;
** Telemarket (super U) : http://www.telemarket.fr/ Limite de livraison à 4000€ et grande variété de produits, problèmes récurrents d'indisponibilité de produits dans la liste et peu de crénaux de livraison disponibles, qui se trouvent de temps en temps saturés. La livraison est un peu délicate quand le livreur ne trouve pas, vu que tout passe par un centre d'appels.&lt;br /&gt;
** Ooshop (Carrefour) : http://www.ooshop.com dans l'idée un peu plus cher que Telemarket, mais un service client plus réactif. Les produits vendus sont similaires, et la limite est initialement à 800€ mais avec possibilité d'augmenter en les appelant.&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=RespoBar&amp;diff=7830</id>
		<title>RespoBar</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=RespoBar&amp;diff=7830"/>
		<updated>2013-04-28T21:46:00Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : Page créée avec « =Respo bar= ===ou comment subir efficacement====  ==Ouverture du bar== * Choisir un groupe de respobars, idéalement trois ou quatre * Ouvrir un compte courant pour le Bar d'... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Respo bar=&lt;br /&gt;
===ou comment subir efficacement====&lt;br /&gt;
&lt;br /&gt;
==Ouverture du bar==&lt;br /&gt;
* Choisir un groupe de respobars, idéalement trois ou quatre&lt;br /&gt;
* Ouvrir un compte courant pour le Bar d'étage, la banque dépends de votre section&lt;br /&gt;
** LCL : Judo, Natation, Escrime, Aviron, Escalade&lt;br /&gt;
** BNP : Tennis, Hand, Bad, Volley, Raid&lt;br /&gt;
** SG : Foot, Rugby, Basket, Poney, Boxe&lt;br /&gt;
* Il faut choisir un trésorier, qui sera titulaire du compte, le mieux étant de désigner un trésorier adjoint dans les respos bars (qui pourra signer les chèques en l’absence du premier), et donner procuration aux respos restants sur le compte, pour parer à toute forme de problème.&lt;br /&gt;
* Récupérer la carte bleue du bar et le chéquier pour pouvoir commencer à faire des courses (les appros).&lt;br /&gt;
&lt;br /&gt;
==La compta==&lt;br /&gt;
Point essentiel, le logiciel est en train d'être repensé, et réécrit pour remplacer une version actuellement assez peu fonctionnelle, dans l'état actuel des choses, le mieux est de tenir une comptabilité annexe sur une feuille excel.&lt;br /&gt;
* Les renseignements à demander à l'ouverture du compte, et à bien se faire préciser (le banquier de l'x n'est pas souvent le plus renseigné au monde...)&lt;br /&gt;
** Découvert autorisé (souvent 300€ sur 30 jours glissants, en gros vous pouvez descendre gratuitement jusque -300€ sur le compte, et moins de 30 jours après la mise en négatif, vous devez positiver votre solde. Après il y a des agios)&lt;br /&gt;
** Plafond de retrait par mois (à ne pas négliger, la consommation d'un gros bar oscille entre 4000€ et 5000€ par mois en moyenne, bien au delà des standards bancaires pour un compte particulier, c'est bête de pas avoir à manger pour une histoire de plafond mal placé)&lt;br /&gt;
* Pour faire une remise de chèque, au moins signer au dos de chaque chèque (marquer aussi le numéro du compte peut s'avérer utile), remplir un bordereau de remise. Dans la plupart des banques le détail des chèques remis n'est pas demandé, pas besoin de le remplir (et à raison de 15 chèques par semaine ça devient vite long)&lt;br /&gt;
* Penser à garder tous les documents, relevés de comptes, tickets de caisse et autres traces de ce que vous avez fait comme opérations.&lt;br /&gt;
&lt;br /&gt;
==La fascisation==&lt;br /&gt;
* Amendes, si tu loggue pas, tu raques !&lt;br /&gt;
* Faire des affiches partout pour expliquer au jeune Taupin le fonctionnement de l'éponge, l'effet de la gravité sur l'eau (elle coule vers le bas en généralement), bref la base du sens commun reste déjà beaucoup trop longue à expliquer pour se lancer dans des considérations plus élaborées...&lt;br /&gt;
* Tours de nettoyage : ça peut être une bonne idée de désigner des respos propreté par semaine pour fasciser et nettoyer ce qui l'à pas été pour que ce soit pas tout le temps les mêmes qui trinquent.&lt;br /&gt;
* Agios : à activer pour ne pas avoir à courir après les chèques, étrangement après ils accourent tout seuls.&lt;br /&gt;
&lt;br /&gt;
==Le log==&lt;br /&gt;
* Le fonctionnement du logiciel est assez erratique, si vous arrivez à rentrer vos appros correctement, vous m'expliquerez. L'essentiel est de créer les aliments au bon tarif, avec une taxe de 20%, ce qui permet de payer les produits open (épices/sauces/poeles, ... à vous de voir). Encore une fois, celui ci va être refait.&lt;br /&gt;
&lt;br /&gt;
==Les appros==&lt;br /&gt;
Vous pouvez toujours aller faire les courses avec une voiture à Cora ou Auchan (voir sur le wikix), mais ça devient rapidement lassant à raison d'un voyage par semaine. Pour ce qui est des livraisons, il existe deux types de supermarché en ligne :&lt;br /&gt;
* La plupart des enseignes font un service ad-hoc, schématiquement vous commandez, un mec du magasin se ballade pour vous dans les rayons, remplis un caddie et vous l'apporte. L'avantage : il y a beaucoup plus de magasins dispos, donc de moyen de changer si ça vous convient pas. L'inconvénient : des limitations en quantité achetée et en volume, comme en variété des produits disponibles.&lt;br /&gt;
** Intermarché : http://drive.intermarche.com/ livreur très sympa et très arrangeant, mais le magasin est tout le temps vide, et c'est presque impossible d'avoir ce qu'on veut en quantité. De la même manière, une limitation à 300 ou 400€ par commande.&lt;br /&gt;
** Auchan : www.auchandirect.fr/ Possibilité d'être livré du jour au lendemain, limite à 500€ et en volume de liquide transporté (donc de bière).&lt;br /&gt;
** Cora : http://www.houra.fr/ Pas testé&lt;br /&gt;
* Deux enseignes ont un vrai service de livraison pro (séparé du magasin) et font du gros.&lt;br /&gt;
** Telemarket (super U) : http://www.telemarket.fr/ Limite de livraison à 4000€ et grande variété de produits, problèmes récurrents d'indisponibilité de produits dans la liste et peu de crénaux de livraison disponibles, qui se trouvent de temps en temps saturés. La livraison est un peu délicate quand le livreur ne trouve pas, vu que tout passe par un centre d'appels.&lt;br /&gt;
** Ooshop (Carrefour) : http://www.ooshop.com dans l'idée un peu plus cher que Telemarket, mais un service client plus réactif. Les produits vendus sont similaires, et la limite est initialement à 800€ mais avec possibilité d'augmenter en les appelant.&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Git&amp;diff=7823</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Git&amp;diff=7823"/>
		<updated>2013-04-18T17:07:21Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : /* Récupérer le code d'un projet existant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu Root Toolbox}}&lt;br /&gt;
&lt;br /&gt;
Git est un [[VCS|système de contrôle de version]]. Assez proche de [[SVN]] par certains côtés, il présente néanmoins un grand nombre de différences.&lt;br /&gt;
&lt;br /&gt;
Si tu découvre git, ou que tu n'est pas encore très à l'aise avec, consulte [http://www.vogella.com/articles/Git/article.html ce tutoriel très bien expliqué et très complet]. Pour un aide mémoire, va voir [http://giudoku.sourceforge.net/media/GitHandbook.pdf ici] ou  [http://ndpsoftware.com/git-cheatsheet.html ici].&lt;br /&gt;
&lt;br /&gt;
== Dépôts ==&lt;br /&gt;
&lt;br /&gt;
Alors que [[CVS]] et [[SVN]] sont des systèmes de versionnement centralisés (i.e un serveur contient le dépôt, et chaque utilisateur effectue un ''checkout'' depuis ce dépôt), Git est complètement décentralisé. Cela signifie que chaque contributeur a sa propre copie locale de tout l'historique d'un projet. Si aujourd'hui vous considérez que l'espace disque sur votre ordinateur est un problème, allez faire un tour, partez admirer les merveilles de la technologies qui nous entoure, et revenez demain. Sur cette page, tous les examples sont tirés du Git de [[Frankiz]], mais voici d'autres dépôts bien utiles :&lt;br /&gt;
* [http://www.github.com/ GitHub]&lt;br /&gt;
* [http://git.frankiz.net/ Frankiz]&lt;br /&gt;
* [http://git.polytechnique.org/ Polytechnique.org]&lt;br /&gt;
&lt;br /&gt;
== Récupérer le code d'un projet existant ==&lt;br /&gt;
&lt;br /&gt;
Pour télécharger un projet existant, il y a deux possibilités : avec un compte de développeur ou sans compte. Avec un compte SSH simple, il suffit d'exécuter la commande suivante :&lt;br /&gt;
 git clone mybeautifulname@git.frankiz.net:/hosting/git/frankiz&lt;br /&gt;
Sans compte, certains projets sont téléchargeables avec le protocole HTTP, mais vous ne pourrez pas uploader vos modifications.&lt;br /&gt;
 git clone http://dev.frankiz.net/git/frankiz&lt;br /&gt;
&lt;br /&gt;
Cela crée un '''clone''' du dépôt d'origine (i.e une copie conforme), qui peut d'ailleurs servir de backup si le dépôt d'origine était perdu. Notre clone contient tout l'historique du dépôt depuis sa création, toutes les branches, etc. Cette première opération est très souple. On peut cloner des dépôt via SSH, HTTP, GIT, ou même en local le dépôt d'un autre utilisateur...&lt;br /&gt;
&lt;br /&gt;
Par exemple la commande suivante clone dans le dossier ''platal'' la branche ''core/master'' d'une version de Plat/al potientiellement modifiée par le vice-prez 2010 :&lt;br /&gt;
 git clone /home/2010/fishilico/dev/platal/.git platal -b core/master&lt;br /&gt;
&lt;br /&gt;
== Accéder à l'aide ==&lt;br /&gt;
Avant toute chose, il est essentiel de savoir où trouver de l'aide, d'autant plus que l'aide de Git est très bien faite.&lt;br /&gt;
* Sur internet, il y a le wikiBR, les pages de manuel ([http://linux.die.net/man/1/git sur Linux Die] par exemple) et le [http://book.git-scm.com/ Git Book]&lt;br /&gt;
* En terminal, ''git help'' pour une liste des commandes, ''git help cmd'' ou ''git cmd --help'' pour l'aide complète de la commande ''cmd'', ou encore simplement ''git cmd -h'' pour une aide courte sur la commande ''cmd''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quel est l'état de ma copie de travail ? ==&lt;br /&gt;
Ceci est la question que vous devez vous posez avant de reprendre après une pause votre travail sur un projet versionné. Il peut y avoir eu des changements sur le projet entre temps, des patchs mal faits en production, ... Pour cela, il y a trois commandes essentielles :&lt;br /&gt;
* Pour vérifier que le dépôt est correct, ''git status'' doit dire cela :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 nothing to commit (working directory clean)&lt;br /&gt;
* En cours de travail, la réponse ressemble plus à :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Changes not staged for commit:&lt;br /&gt;
 #   (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to update what will be committed)&lt;br /&gt;
 #   (use &amp;quot;git checkout -- &amp;lt;file&amp;gt;...&amp;quot; to discard changes in working directory)&lt;br /&gt;
 #&lt;br /&gt;
 #	modified:   un-fichier-random.blah&lt;br /&gt;
 #&lt;br /&gt;
 # Untracked files:&lt;br /&gt;
 #   (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to include in what will be committed)&lt;br /&gt;
 #&lt;br /&gt;
 #	un-fichier-chombier-ajouté.42&lt;br /&gt;
 no changes added to commit (use &amp;quot;git add&amp;quot; and/or &amp;quot;git commit -a&amp;quot;)&lt;br /&gt;
* Lire l'historique est bien pour savoir quel est le dernier commit&lt;br /&gt;
 git log&lt;br /&gt;
 commit 2a424aae1e746fb5f33de3b3bc3e8a31ee25c684&lt;br /&gt;
 Author: Nicolas Iooss &amp;lt;fishilico@eleves.polytechnique.fr&amp;gt;&lt;br /&gt;
 Date:   Fri Mar 9 00:27:35 2012 +0100&lt;br /&gt;
* Voir les différences entre la version sur le dépôt distant et celle de travail&lt;br /&gt;
 git diff&lt;br /&gt;
&lt;br /&gt;
De plus, après avoir téléchargé les derniers commits avec ''git fetch'', il est possible d'obtenir le message suivant :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Your branch is behind 'origin/master' by 42 commits, and can be fast-forwarded.&lt;br /&gt;
Cela signifie que la copie locale a 42 commits de retard sur le dépôt distant, mais qu'un ''git rebase origin/master'' suffit pour mettre à jour la copie locale.&lt;br /&gt;
&lt;br /&gt;
== Réinitialiser le dépôt ==&lt;br /&gt;
Pour restaurer un fichier, il suffit de le ''checkout'' à partir de l'index. En français, cela signifie que lorsque vous faites une modification sur un fichier, vous pouvez effacer les modifications et revenir la dernière version enregistrée dans l'index Git avec la commande :&lt;br /&gt;
 git checkout -- chemin/vers/mon/fichier.blih&lt;br /&gt;
Pour réinitialiser l'index dans l'état indiqué par une branche (comme ''master'' par exemple) sans modifier les fichier, il suffit d'écrire :&lt;br /&gt;
 git reset master&lt;br /&gt;
Si cela ne marche pas car des fichiers seront modifiés ou effacés, on peut forcer la main à Git, mais alors il faut être prêt à subir les conséqences que cela implique (perte des modifications non commitées)&lt;br /&gt;
 git reset --hard master&lt;br /&gt;
&lt;br /&gt;
== Mettre à jour la copie de travail ==&lt;br /&gt;
=== git fetch &amp;amp;&amp;amp; git rebase origin/master ===&lt;br /&gt;
Dans le cas général, vous travaillez sur la branche ''master'' et vous synchronisez votre projet sur un seul serveur. Si votre cas est plus compliqué, vous devez être suffisamment compétent pour vous débrouillez par vous-même. On disait donc... dans le cas simple, Git stocke en interne deux branches : ''master'' et ''origin/master''. Sur Frankiz, c'est un peu plus compliqué car il y a une branche de production, mais les développeurs n'utilisent que master.&lt;br /&gt;
 git branch -a&lt;br /&gt;
 * master&lt;br /&gt;
   remotes/origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
   remotes/origin/f579e1971a66623b2948bf0e20c2e23481022b41&lt;br /&gt;
   remotes/origin/fkz2&lt;br /&gt;
   remotes/origin/kangz-h4ck3s&lt;br /&gt;
   remotes/origin/master&lt;br /&gt;
   remotes/origin/prod&lt;br /&gt;
&lt;br /&gt;
Pour mettre à jour sa copie de travail, il faut donc commencer par mettre à jour les branches distantes, avec '''au choix''' l'une des commandes suivantes&lt;br /&gt;
 git fetch&lt;br /&gt;
 git fetch origin&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut appliquer les éventuelles modifications locales à la suite de celles effectuées sur le dépôt, c'est le '''rebase'''.&lt;br /&gt;
 git rebase origin/master&lt;br /&gt;
Git essaiera alors d'appliquer les commits locaux successivement, en indiquant chaque fois qu'il y a un problème (conflit ou fichier supprimé). En cas de problème, il faut&lt;br /&gt;
# Résoudre le problème (les fichiers avec des conflits apparaîssent comme ''Changed but not updated'' dans ''git status'')&lt;br /&gt;
# Ajouter les fichiers (''git add'')&lt;br /&gt;
# Indiquer à git de continuer : ''git rebase --continue''&lt;br /&gt;
&lt;br /&gt;
Remarque : git pull --rebase est un raccourci pour l'ensemble git fetch &amp;amp;&amp;amp; git rebase. Attention cependant lors du travail sur plusieurs branches.&lt;br /&gt;
&lt;br /&gt;
Ceci permet de transformer l'état suivant (les ''O'' sont les commits, ''A'' le moment où les deux versions ont commencé à diverger, ''B'' la version du dépôt, ''E'' la version locale, ''C'' et ''D'' des commits locaux&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /&lt;br /&gt;
 -O--A--O--B&lt;br /&gt;
&lt;br /&gt;
En l'état plus propre :&lt;br /&gt;
 -O--A--O--B--C'--D'--E'&lt;br /&gt;
&lt;br /&gt;
Avec C, D et E convertis en C', D' et E' : ils ont été modifiés pour être des modifications relatives à B au lieu de A.&lt;br /&gt;
&lt;br /&gt;
=== Pourquoi il ne faut JAMAIS utiliser git pull ===&lt;br /&gt;
Certains développeurs utilisent la commande ''git pull'' pour mettre à jour leur dépôt. Cette pratique est justifiée lorsque la copie de travail était propre (sans commit en attente de push entre autres), mais sinon, cela peut avoir des conséquences très graves et sales. En effet, ''git pull' est assimilé à la succession de commandes suivantes :&lt;br /&gt;
 git fetch origin &amp;amp;&amp;amp; git merge origin/master&lt;br /&gt;
Le problème est le merge. En reprenant les schémas précédents, cela transforme l'état suivant :&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /&lt;br /&gt;
 -O--A--O--B&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /        \&lt;br /&gt;
 -O--A--O--B----M&lt;br /&gt;
&lt;br /&gt;
où M est le commit ''de fusion de branches''. '''Cela est très moche et à éviter absolument'''. Si vous vous retrouvez dans cette suituation (pour vérifier : ''git log''), vous pouvez toujours tenter un ''git rebase origin/master'' qui peut fonctionner si le ''merge'' était trivial (sans conflit). Sinon, un ''git reset --hard origin/master'' s'impose pour assurer votre salut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sauvegarder des modifications locales (git stash) ===&lt;br /&gt;
Avant de faire un merge particulièrement délicat, ou si l'on doit résoudre un bug alors que l'on a pas mal de modifications non commitées en cours, il est parfois utile de sauvegarder l'état courant de la copie de travail.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser '''avant''' un changement (avec ''git rebase'' par exemple) :&lt;br /&gt;
 git stash&lt;br /&gt;
Une fois les modifications effectuées, on peut restorer la copie locale à l'état sauvegardé avec :&lt;br /&gt;
 git stash pop&lt;br /&gt;
&lt;br /&gt;
== Effectuer un commit ==&lt;br /&gt;
Un '''commit''' est un ensemble de fichiers modifiés. Cela permet plus de cohérence dans le suivi des versions. Par exemple, si l'ajout d'une fonctionnalité sur Frankiz modifie les fichiers ''blah'', ''blih'' et ''bloh'', le ''commit'' regroupe les modifications de ces trois fichiers, et associe à cette modification une date et un auteur.&lt;br /&gt;
&lt;br /&gt;
Pour effectuer un commit, il faut :&lt;br /&gt;
* Vérifier l'état de la copie de travail, pour ne commiter que ce qui est nécessaire&lt;br /&gt;
 git status&lt;br /&gt;
 git diff&lt;br /&gt;
* Indiquer à Git quels fichiers feront partie du commit ; ceci permet de ne committer que les modifications de quelques fichiers&lt;br /&gt;
 git add path/to/blih path/to/blah path/to/bloh&lt;br /&gt;
* Vérifier que l'on a ajouté les fichiers que l'on voulait :&lt;br /&gt;
 git status&lt;br /&gt;
* Faire le commit (le ''-s'' ajoute une ligne ''Signed of by'' dans le message, pour pouvoir retrouver plus efficacement l'auteur réel du commit)&lt;br /&gt;
 git commit -s&lt;br /&gt;
* Cette commande ouvre un éditeur (vi, nano ou emacs selon la configuration de la variable EDITOR). Il faut alors entrer un bref descriptif du commit. '''Pour certains projets (dont Frankiz), les conventions de codage obligent les développeurs à écrire les descriptions en anglais.''' Il est un bon usage de s'adapter en conséquence, car un commit peut être refusé en production s'il est mal fait.&lt;br /&gt;
* Mettre à jour la copie locale avec le dépôt distant (cela décale le nouveau commit à la fin). '''IL NE FAUT SURTOUT PAS FAIRE DE git pull OU DE git merge ICI'''&lt;br /&gt;
 git fetch&lt;br /&gt;
 git rebase origin/master&lt;br /&gt;
* Transmettre les commits au dépôt d'origine&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
La dernière commande provient du fait que git n'est pas centralisé : il n'envoie pas les modifications locales au dépôt parent spontanément.&lt;br /&gt;
&lt;br /&gt;
Ceci permet de faire quelques modifications locales puis de n'envoyer cela au reste des développeurs que lorsque les modifications sont stables et complètes, par exemple.&lt;br /&gt;
&lt;br /&gt;
== Gérer les branches ==&lt;br /&gt;
On peut voir la liste des branches accessibles avec :&lt;br /&gt;
 git branch -a&lt;br /&gt;
* La ligne avec une étoile est la branche courante&lt;br /&gt;
* Les lignes blanches sont les branches ''locales'' (elles suivent généralement une branche distante)&lt;br /&gt;
* Les lignes rouges (si les couleurs sont activées) sont les branches distantes.&lt;br /&gt;
&lt;br /&gt;
Pour récupérer une autre branche, il faut d'abord l'ajouter localement :&lt;br /&gt;
 git checkout -b NomLocal origin/NomDistant&lt;br /&gt;
&lt;br /&gt;
Cela aura également pour effet de basculer sur la branche NomLocal.&lt;br /&gt;
Les modifications que l'on avait effectuées sont bien entendu conservées.&lt;br /&gt;
&lt;br /&gt;
Une fois la branche ajoutée, on peut basculer de branche en branche à l'aide de :&lt;br /&gt;
 git checkout NomLocal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Créer un dépôt ==&lt;br /&gt;
Contrairement à [[SVN]] où il faut installer un serveur subversion, créer un dépôt Git est très rapide : dans le dossier que l'on souhaite versionner, il suffit de taper&lt;br /&gt;
 git init&lt;br /&gt;
Et voilà, le dossier est versionné : on peut donc commencer à faire des modifications, des commits, etc. (bien entendu, on ne peut pas ''pusher'' ses commits, puisqu'il n'y a pas de serveur distant).&lt;br /&gt;
&lt;br /&gt;
Cette particularité rend Git très efficace pour versionner un petit projet, un exercice de TD, etc.&lt;br /&gt;
&lt;br /&gt;
Pour créer un dépôt qui peut être cloné, il faut exécuter les commandes suivantes :&lt;br /&gt;
 git init --bare mon_projet&lt;br /&gt;
 cd mon_projet &amp;amp;&amp;amp; git update-server-info&lt;br /&gt;
&lt;br /&gt;
Enfin, pour configurer un serveur HTTP (gitweb), il ne faut pas oublier de créer un fichier vide '''git-daemon-export-ok''' dans le dossier, afin de permettre le clonage.&lt;br /&gt;
&lt;br /&gt;
== Structure interne ==&lt;br /&gt;
&lt;br /&gt;
Git stocke les commits de manière très particulière : un commit correspond à peu près à une sauvegarde de l'état des fichiers, à un message, et à une référence vers le commit parent.&lt;br /&gt;
Contrairemant à [[SVN]], il n'y a donc pas de notion de numéro de révision : chaque commit est identifié par une chaîne hexadécimale de 40 caractères (par exemple : ''04fd02e59b1bdc430c7a7dcc1ca9f4cbc2b04037'' )&lt;br /&gt;
&lt;br /&gt;
Un ''tag'' est en fait un nom «lisible» donné à un ''commit'' ; une ''branche'' indique également le ''commit'' principal d'une branche.&lt;br /&gt;
&lt;br /&gt;
== Du bon usage de gitignore ==&lt;br /&gt;
Dans un projet, il est inutile de versionner les fichiers temporaires et les fichiers compilés (qu'ils soient binaires ou non). On utilise généralement un Makefile pour créer ces fichiers. Pour éviter de les versionner, il suffit d'utiliser un fichier ''.gitignore'' bien placé. Généralement, chaque projet a un tel fichier dans son dossier principal. Voici par exemple un extrait du gitignore de Frankiz :&lt;br /&gt;
 configs/frankiz.conf&lt;br /&gt;
 htdocs/.htaccess&lt;br /&gt;
 htdocs/data/*&lt;br /&gt;
 htdocs/css/*&lt;br /&gt;
 spool/*&lt;br /&gt;
 upgrade/2.0.0_to_3.0.0/unversionned&lt;br /&gt;
&lt;br /&gt;
== Configuration globale ==&lt;br /&gt;
Si vous avez déjà commitez, vous aurez certainement remarqué qu'il faut utiliser ''git config'' pour configurer vos informations personnelles. Ainsi, les deux premières commandes que tout utilisateur doit taper avant de faire un commit sont :&lt;br /&gt;
 git config --global user.name &amp;quot;Prénom Nom de famille&amp;quot;&lt;br /&gt;
 git config --global user.email &amp;quot;prenom.nom.promo@polytechnique.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ensuite, si vous aimez les couleurs, vous avez envie de taper cette commande :&lt;br /&gt;
 git config --global color.ui auto&lt;br /&gt;
&lt;br /&gt;
Enfin, si vous en avez assez des projets qui ne mettent pas les fichiers temporaires dans le gitignore, vous pouvez configurer un fichier gitignore global. Si votre ''/home/user/.gitignore_global'' ressemble à&lt;br /&gt;
 *~&lt;br /&gt;
 *.swp&lt;br /&gt;
 *.tmp&lt;br /&gt;
il suffit de taper :&lt;br /&gt;
 git config --global core.excludesfile /home/user/.gitignore_global&lt;br /&gt;
&lt;br /&gt;
Tout cela permet de gérer la configuration globale, visible par&lt;br /&gt;
 git config --global -l&lt;br /&gt;
En enlevant ''--global'' dans toutes les commandes précédentes, on configure la copie locale.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de configuration ===&lt;br /&gt;
Voici un exemple de fichier ~/.gitconfig (qui stocke la configuration ''--global'', le même format peut être utilisé dans les fichier ''$REPO/.git/config'' de chaque dépot) :&lt;br /&gt;
 [gc]&lt;br /&gt;
    auto = 1&lt;br /&gt;
 [color]&lt;br /&gt;
    ui = true&lt;br /&gt;
 [color &amp;quot;diff&amp;quot;]&lt;br /&gt;
    whitespace = red reverse&lt;br /&gt;
 [core]&lt;br /&gt;
    whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol&lt;br /&gt;
 [alias]&lt;br /&gt;
    st = status&lt;br /&gt;
    ci = commit&lt;br /&gt;
    br = branch&lt;br /&gt;
    co = checkout&lt;br /&gt;
    df = diff&lt;br /&gt;
    dc = diff --cached&lt;br /&gt;
    lg = log -p&lt;br /&gt;
    lo = log --graph --decorate --pretty=oneline --abbrev-commit -n 10&lt;br /&gt;
    lol = log --graph --decorate --pretty=oneline --abbrev-commit&lt;br /&gt;
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all&lt;br /&gt;
    ls = ls-files&lt;br /&gt;
    # Show files ignored by git:&lt;br /&gt;
    ign = ls-files -o -i --exclude-standard&lt;br /&gt;
    amend = commit --amend -C HEAD&lt;br /&gt;
 [branch]&lt;br /&gt;
    autosetuprebase = always&lt;br /&gt;
&lt;br /&gt;
== Utiliser le proxy de l'X avec Git ==&lt;br /&gt;
Si vous hébergez un projet sur [http://www.github.com GitHub], vous avez envie de dire à Git de se connecter à GitHub en SSH en passant par le proxy de l'X (qui est [http://kuzh.polytechnique.fr:8080 kuzh:8080]). Pour cela, il suffit de configurer le client SSH pour utiliser le proxy à chaque connexion vers github.com. Cela s'effecute par le fichier de configuration suivant dans /home/user/.ssh/config (adaptez avec votre dossier personnel)&lt;br /&gt;
 Host github.com&lt;br /&gt;
     ProxyCommand socat - PROXY:kuzh.polytechnique.fr:%h:%p,proxyport=8080&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez utiliser le protocole git://, il faut utiliser socat, et créer un exécutable avec dedans :&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 exec socat STDIO PROXY:129.104.247.2:$1:$2&lt;br /&gt;
&lt;br /&gt;
Puis mettre cet executable dans la variable core.gitproxy :&lt;br /&gt;
 git config --global core.gitproxy NOM_DU_FICHIER&lt;br /&gt;
&lt;br /&gt;
N'oubliez pas d'enlever cette variable pour utiliser git en-dehors de l'X.&lt;br /&gt;
&lt;br /&gt;
'''Si vous souhaitez uniquement cloner un dépôt GitHub''' dont vous n'êtes pas contributeur, il suffit d'utiliser le lien HTTPS en ligne de commande, en précisant le proxy.&lt;br /&gt;
 export https_proxy=http://kuzh.polytechnique.fr:8080&lt;br /&gt;
 git clone https://github.com/BinetReseau/frankiz.git&lt;br /&gt;
&lt;br /&gt;
Finalement, si vous ne voulez pas vous connecter par ssh, mais vous souhaitez travailler normalement avec un depôt à l'extérieur de l'X, configurez git par le biais de ces commandes:&lt;br /&gt;
 git config --global http.proxy http://kuzh.polytechnique.fr:8080&lt;br /&gt;
 git config --global https.proxy http://kuzh.polytechnique.fr:8080&lt;br /&gt;
&lt;br /&gt;
Cela va effectuer les modifications correspondantes sur le fichier ~/.gitconfig. '''N'oubliez pas de les enlever dès que vous n'êtes plus connectés au réseau de l'école, avec''':&lt;br /&gt;
 git config --global --unset http.proxy http://kuzh.polytechnique.fr:8080 &lt;br /&gt;
&lt;br /&gt;
= Pour Windows =&lt;br /&gt;
&lt;br /&gt;
Pour utiliser Git sur Windows, on peut par exemple télécharger MSys Git : [http://msysgit.github.com/ http://msysgit.github.com/].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Root]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Git&amp;diff=7822</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Git&amp;diff=7822"/>
		<updated>2013-04-18T17:06:52Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : /* Récupérer le code d'un projet existant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu Root Toolbox}}&lt;br /&gt;
&lt;br /&gt;
Git est un [[VCS|système de contrôle de version]]. Assez proche de [[SVN]] par certains côtés, il présente néanmoins un grand nombre de différences.&lt;br /&gt;
&lt;br /&gt;
Si tu découvre git, ou que tu n'est pas encore très à l'aise avec, consulte [http://www.vogella.com/articles/Git/article.html ce tutoriel très bien expliqué et très complet]. Pour un aide mémoire, va voir [http://giudoku.sourceforge.net/media/GitHandbook.pdf ici] ou  [http://ndpsoftware.com/git-cheatsheet.html ici].&lt;br /&gt;
&lt;br /&gt;
== Dépôts ==&lt;br /&gt;
&lt;br /&gt;
Alors que [[CVS]] et [[SVN]] sont des systèmes de versionnement centralisés (i.e un serveur contient le dépôt, et chaque utilisateur effectue un ''checkout'' depuis ce dépôt), Git est complètement décentralisé. Cela signifie que chaque contributeur a sa propre copie locale de tout l'historique d'un projet. Si aujourd'hui vous considérez que l'espace disque sur votre ordinateur est un problème, allez faire un tour, partez admirer les merveilles de la technologies qui nous entoure, et revenez demain. Sur cette page, tous les examples sont tirés du Git de [[Frankiz]], mais voici d'autres dépôts bien utiles :&lt;br /&gt;
* [http://www.github.com/ GitHub]&lt;br /&gt;
* [http://git.frankiz.net/ Frankiz]&lt;br /&gt;
* [http://git.polytechnique.org/ Polytechnique.org]&lt;br /&gt;
&lt;br /&gt;
== Récupérer le code d'un projet existant ==&lt;br /&gt;
&lt;br /&gt;
Pour télécharger un projet existant, il y a deux possibilités : avec un compte de développeur ou sans compte. Avec un compte SSH simple, il suffit d'exécuter la commande suivante :&lt;br /&gt;
 git clone mybeautifulname@git.frankiz.net:/hosting/git/frankiz&lt;br /&gt;
Sans compte, certains projets sont téléchargeables avec le protocole HTTP, mais vous ne pourrez pas uploader vos modifications.&lt;br /&gt;
 git clone http://dev.frankiz.net/frankiz&lt;br /&gt;
&lt;br /&gt;
Cela crée un '''clone''' du dépôt d'origine (i.e une copie conforme), qui peut d'ailleurs servir de backup si le dépôt d'origine était perdu. Notre clone contient tout l'historique du dépôt depuis sa création, toutes les branches, etc. Cette première opération est très souple. On peut cloner des dépôt via SSH, HTTP, GIT, ou même en local le dépôt d'un autre utilisateur...&lt;br /&gt;
&lt;br /&gt;
Par exemple la commande suivante clone dans le dossier ''platal'' la branche ''core/master'' d'une version de Plat/al potientiellement modifiée par le vice-prez 2010 :&lt;br /&gt;
 git clone /home/2010/fishilico/dev/platal/.git platal -b core/master&lt;br /&gt;
&lt;br /&gt;
== Accéder à l'aide ==&lt;br /&gt;
Avant toute chose, il est essentiel de savoir où trouver de l'aide, d'autant plus que l'aide de Git est très bien faite.&lt;br /&gt;
* Sur internet, il y a le wikiBR, les pages de manuel ([http://linux.die.net/man/1/git sur Linux Die] par exemple) et le [http://book.git-scm.com/ Git Book]&lt;br /&gt;
* En terminal, ''git help'' pour une liste des commandes, ''git help cmd'' ou ''git cmd --help'' pour l'aide complète de la commande ''cmd'', ou encore simplement ''git cmd -h'' pour une aide courte sur la commande ''cmd''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quel est l'état de ma copie de travail ? ==&lt;br /&gt;
Ceci est la question que vous devez vous posez avant de reprendre après une pause votre travail sur un projet versionné. Il peut y avoir eu des changements sur le projet entre temps, des patchs mal faits en production, ... Pour cela, il y a trois commandes essentielles :&lt;br /&gt;
* Pour vérifier que le dépôt est correct, ''git status'' doit dire cela :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 nothing to commit (working directory clean)&lt;br /&gt;
* En cours de travail, la réponse ressemble plus à :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Changes not staged for commit:&lt;br /&gt;
 #   (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to update what will be committed)&lt;br /&gt;
 #   (use &amp;quot;git checkout -- &amp;lt;file&amp;gt;...&amp;quot; to discard changes in working directory)&lt;br /&gt;
 #&lt;br /&gt;
 #	modified:   un-fichier-random.blah&lt;br /&gt;
 #&lt;br /&gt;
 # Untracked files:&lt;br /&gt;
 #   (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to include in what will be committed)&lt;br /&gt;
 #&lt;br /&gt;
 #	un-fichier-chombier-ajouté.42&lt;br /&gt;
 no changes added to commit (use &amp;quot;git add&amp;quot; and/or &amp;quot;git commit -a&amp;quot;)&lt;br /&gt;
* Lire l'historique est bien pour savoir quel est le dernier commit&lt;br /&gt;
 git log&lt;br /&gt;
 commit 2a424aae1e746fb5f33de3b3bc3e8a31ee25c684&lt;br /&gt;
 Author: Nicolas Iooss &amp;lt;fishilico@eleves.polytechnique.fr&amp;gt;&lt;br /&gt;
 Date:   Fri Mar 9 00:27:35 2012 +0100&lt;br /&gt;
* Voir les différences entre la version sur le dépôt distant et celle de travail&lt;br /&gt;
 git diff&lt;br /&gt;
&lt;br /&gt;
De plus, après avoir téléchargé les derniers commits avec ''git fetch'', il est possible d'obtenir le message suivant :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Your branch is behind 'origin/master' by 42 commits, and can be fast-forwarded.&lt;br /&gt;
Cela signifie que la copie locale a 42 commits de retard sur le dépôt distant, mais qu'un ''git rebase origin/master'' suffit pour mettre à jour la copie locale.&lt;br /&gt;
&lt;br /&gt;
== Réinitialiser le dépôt ==&lt;br /&gt;
Pour restaurer un fichier, il suffit de le ''checkout'' à partir de l'index. En français, cela signifie que lorsque vous faites une modification sur un fichier, vous pouvez effacer les modifications et revenir la dernière version enregistrée dans l'index Git avec la commande :&lt;br /&gt;
 git checkout -- chemin/vers/mon/fichier.blih&lt;br /&gt;
Pour réinitialiser l'index dans l'état indiqué par une branche (comme ''master'' par exemple) sans modifier les fichier, il suffit d'écrire :&lt;br /&gt;
 git reset master&lt;br /&gt;
Si cela ne marche pas car des fichiers seront modifiés ou effacés, on peut forcer la main à Git, mais alors il faut être prêt à subir les conséqences que cela implique (perte des modifications non commitées)&lt;br /&gt;
 git reset --hard master&lt;br /&gt;
&lt;br /&gt;
== Mettre à jour la copie de travail ==&lt;br /&gt;
=== git fetch &amp;amp;&amp;amp; git rebase origin/master ===&lt;br /&gt;
Dans le cas général, vous travaillez sur la branche ''master'' et vous synchronisez votre projet sur un seul serveur. Si votre cas est plus compliqué, vous devez être suffisamment compétent pour vous débrouillez par vous-même. On disait donc... dans le cas simple, Git stocke en interne deux branches : ''master'' et ''origin/master''. Sur Frankiz, c'est un peu plus compliqué car il y a une branche de production, mais les développeurs n'utilisent que master.&lt;br /&gt;
 git branch -a&lt;br /&gt;
 * master&lt;br /&gt;
   remotes/origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
   remotes/origin/f579e1971a66623b2948bf0e20c2e23481022b41&lt;br /&gt;
   remotes/origin/fkz2&lt;br /&gt;
   remotes/origin/kangz-h4ck3s&lt;br /&gt;
   remotes/origin/master&lt;br /&gt;
   remotes/origin/prod&lt;br /&gt;
&lt;br /&gt;
Pour mettre à jour sa copie de travail, il faut donc commencer par mettre à jour les branches distantes, avec '''au choix''' l'une des commandes suivantes&lt;br /&gt;
 git fetch&lt;br /&gt;
 git fetch origin&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut appliquer les éventuelles modifications locales à la suite de celles effectuées sur le dépôt, c'est le '''rebase'''.&lt;br /&gt;
 git rebase origin/master&lt;br /&gt;
Git essaiera alors d'appliquer les commits locaux successivement, en indiquant chaque fois qu'il y a un problème (conflit ou fichier supprimé). En cas de problème, il faut&lt;br /&gt;
# Résoudre le problème (les fichiers avec des conflits apparaîssent comme ''Changed but not updated'' dans ''git status'')&lt;br /&gt;
# Ajouter les fichiers (''git add'')&lt;br /&gt;
# Indiquer à git de continuer : ''git rebase --continue''&lt;br /&gt;
&lt;br /&gt;
Remarque : git pull --rebase est un raccourci pour l'ensemble git fetch &amp;amp;&amp;amp; git rebase. Attention cependant lors du travail sur plusieurs branches.&lt;br /&gt;
&lt;br /&gt;
Ceci permet de transformer l'état suivant (les ''O'' sont les commits, ''A'' le moment où les deux versions ont commencé à diverger, ''B'' la version du dépôt, ''E'' la version locale, ''C'' et ''D'' des commits locaux&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /&lt;br /&gt;
 -O--A--O--B&lt;br /&gt;
&lt;br /&gt;
En l'état plus propre :&lt;br /&gt;
 -O--A--O--B--C'--D'--E'&lt;br /&gt;
&lt;br /&gt;
Avec C, D et E convertis en C', D' et E' : ils ont été modifiés pour être des modifications relatives à B au lieu de A.&lt;br /&gt;
&lt;br /&gt;
=== Pourquoi il ne faut JAMAIS utiliser git pull ===&lt;br /&gt;
Certains développeurs utilisent la commande ''git pull'' pour mettre à jour leur dépôt. Cette pratique est justifiée lorsque la copie de travail était propre (sans commit en attente de push entre autres), mais sinon, cela peut avoir des conséquences très graves et sales. En effet, ''git pull' est assimilé à la succession de commandes suivantes :&lt;br /&gt;
 git fetch origin &amp;amp;&amp;amp; git merge origin/master&lt;br /&gt;
Le problème est le merge. En reprenant les schémas précédents, cela transforme l'état suivant :&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /&lt;br /&gt;
 -O--A--O--B&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /        \&lt;br /&gt;
 -O--A--O--B----M&lt;br /&gt;
&lt;br /&gt;
où M est le commit ''de fusion de branches''. '''Cela est très moche et à éviter absolument'''. Si vous vous retrouvez dans cette suituation (pour vérifier : ''git log''), vous pouvez toujours tenter un ''git rebase origin/master'' qui peut fonctionner si le ''merge'' était trivial (sans conflit). Sinon, un ''git reset --hard origin/master'' s'impose pour assurer votre salut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sauvegarder des modifications locales (git stash) ===&lt;br /&gt;
Avant de faire un merge particulièrement délicat, ou si l'on doit résoudre un bug alors que l'on a pas mal de modifications non commitées en cours, il est parfois utile de sauvegarder l'état courant de la copie de travail.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser '''avant''' un changement (avec ''git rebase'' par exemple) :&lt;br /&gt;
 git stash&lt;br /&gt;
Une fois les modifications effectuées, on peut restorer la copie locale à l'état sauvegardé avec :&lt;br /&gt;
 git stash pop&lt;br /&gt;
&lt;br /&gt;
== Effectuer un commit ==&lt;br /&gt;
Un '''commit''' est un ensemble de fichiers modifiés. Cela permet plus de cohérence dans le suivi des versions. Par exemple, si l'ajout d'une fonctionnalité sur Frankiz modifie les fichiers ''blah'', ''blih'' et ''bloh'', le ''commit'' regroupe les modifications de ces trois fichiers, et associe à cette modification une date et un auteur.&lt;br /&gt;
&lt;br /&gt;
Pour effectuer un commit, il faut :&lt;br /&gt;
* Vérifier l'état de la copie de travail, pour ne commiter que ce qui est nécessaire&lt;br /&gt;
 git status&lt;br /&gt;
 git diff&lt;br /&gt;
* Indiquer à Git quels fichiers feront partie du commit ; ceci permet de ne committer que les modifications de quelques fichiers&lt;br /&gt;
 git add path/to/blih path/to/blah path/to/bloh&lt;br /&gt;
* Vérifier que l'on a ajouté les fichiers que l'on voulait :&lt;br /&gt;
 git status&lt;br /&gt;
* Faire le commit (le ''-s'' ajoute une ligne ''Signed of by'' dans le message, pour pouvoir retrouver plus efficacement l'auteur réel du commit)&lt;br /&gt;
 git commit -s&lt;br /&gt;
* Cette commande ouvre un éditeur (vi, nano ou emacs selon la configuration de la variable EDITOR). Il faut alors entrer un bref descriptif du commit. '''Pour certains projets (dont Frankiz), les conventions de codage obligent les développeurs à écrire les descriptions en anglais.''' Il est un bon usage de s'adapter en conséquence, car un commit peut être refusé en production s'il est mal fait.&lt;br /&gt;
* Mettre à jour la copie locale avec le dépôt distant (cela décale le nouveau commit à la fin). '''IL NE FAUT SURTOUT PAS FAIRE DE git pull OU DE git merge ICI'''&lt;br /&gt;
 git fetch&lt;br /&gt;
 git rebase origin/master&lt;br /&gt;
* Transmettre les commits au dépôt d'origine&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
La dernière commande provient du fait que git n'est pas centralisé : il n'envoie pas les modifications locales au dépôt parent spontanément.&lt;br /&gt;
&lt;br /&gt;
Ceci permet de faire quelques modifications locales puis de n'envoyer cela au reste des développeurs que lorsque les modifications sont stables et complètes, par exemple.&lt;br /&gt;
&lt;br /&gt;
== Gérer les branches ==&lt;br /&gt;
On peut voir la liste des branches accessibles avec :&lt;br /&gt;
 git branch -a&lt;br /&gt;
* La ligne avec une étoile est la branche courante&lt;br /&gt;
* Les lignes blanches sont les branches ''locales'' (elles suivent généralement une branche distante)&lt;br /&gt;
* Les lignes rouges (si les couleurs sont activées) sont les branches distantes.&lt;br /&gt;
&lt;br /&gt;
Pour récupérer une autre branche, il faut d'abord l'ajouter localement :&lt;br /&gt;
 git checkout -b NomLocal origin/NomDistant&lt;br /&gt;
&lt;br /&gt;
Cela aura également pour effet de basculer sur la branche NomLocal.&lt;br /&gt;
Les modifications que l'on avait effectuées sont bien entendu conservées.&lt;br /&gt;
&lt;br /&gt;
Une fois la branche ajoutée, on peut basculer de branche en branche à l'aide de :&lt;br /&gt;
 git checkout NomLocal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Créer un dépôt ==&lt;br /&gt;
Contrairement à [[SVN]] où il faut installer un serveur subversion, créer un dépôt Git est très rapide : dans le dossier que l'on souhaite versionner, il suffit de taper&lt;br /&gt;
 git init&lt;br /&gt;
Et voilà, le dossier est versionné : on peut donc commencer à faire des modifications, des commits, etc. (bien entendu, on ne peut pas ''pusher'' ses commits, puisqu'il n'y a pas de serveur distant).&lt;br /&gt;
&lt;br /&gt;
Cette particularité rend Git très efficace pour versionner un petit projet, un exercice de TD, etc.&lt;br /&gt;
&lt;br /&gt;
Pour créer un dépôt qui peut être cloné, il faut exécuter les commandes suivantes :&lt;br /&gt;
 git init --bare mon_projet&lt;br /&gt;
 cd mon_projet &amp;amp;&amp;amp; git update-server-info&lt;br /&gt;
&lt;br /&gt;
Enfin, pour configurer un serveur HTTP (gitweb), il ne faut pas oublier de créer un fichier vide '''git-daemon-export-ok''' dans le dossier, afin de permettre le clonage.&lt;br /&gt;
&lt;br /&gt;
== Structure interne ==&lt;br /&gt;
&lt;br /&gt;
Git stocke les commits de manière très particulière : un commit correspond à peu près à une sauvegarde de l'état des fichiers, à un message, et à une référence vers le commit parent.&lt;br /&gt;
Contrairemant à [[SVN]], il n'y a donc pas de notion de numéro de révision : chaque commit est identifié par une chaîne hexadécimale de 40 caractères (par exemple : ''04fd02e59b1bdc430c7a7dcc1ca9f4cbc2b04037'' )&lt;br /&gt;
&lt;br /&gt;
Un ''tag'' est en fait un nom «lisible» donné à un ''commit'' ; une ''branche'' indique également le ''commit'' principal d'une branche.&lt;br /&gt;
&lt;br /&gt;
== Du bon usage de gitignore ==&lt;br /&gt;
Dans un projet, il est inutile de versionner les fichiers temporaires et les fichiers compilés (qu'ils soient binaires ou non). On utilise généralement un Makefile pour créer ces fichiers. Pour éviter de les versionner, il suffit d'utiliser un fichier ''.gitignore'' bien placé. Généralement, chaque projet a un tel fichier dans son dossier principal. Voici par exemple un extrait du gitignore de Frankiz :&lt;br /&gt;
 configs/frankiz.conf&lt;br /&gt;
 htdocs/.htaccess&lt;br /&gt;
 htdocs/data/*&lt;br /&gt;
 htdocs/css/*&lt;br /&gt;
 spool/*&lt;br /&gt;
 upgrade/2.0.0_to_3.0.0/unversionned&lt;br /&gt;
&lt;br /&gt;
== Configuration globale ==&lt;br /&gt;
Si vous avez déjà commitez, vous aurez certainement remarqué qu'il faut utiliser ''git config'' pour configurer vos informations personnelles. Ainsi, les deux premières commandes que tout utilisateur doit taper avant de faire un commit sont :&lt;br /&gt;
 git config --global user.name &amp;quot;Prénom Nom de famille&amp;quot;&lt;br /&gt;
 git config --global user.email &amp;quot;prenom.nom.promo@polytechnique.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ensuite, si vous aimez les couleurs, vous avez envie de taper cette commande :&lt;br /&gt;
 git config --global color.ui auto&lt;br /&gt;
&lt;br /&gt;
Enfin, si vous en avez assez des projets qui ne mettent pas les fichiers temporaires dans le gitignore, vous pouvez configurer un fichier gitignore global. Si votre ''/home/user/.gitignore_global'' ressemble à&lt;br /&gt;
 *~&lt;br /&gt;
 *.swp&lt;br /&gt;
 *.tmp&lt;br /&gt;
il suffit de taper :&lt;br /&gt;
 git config --global core.excludesfile /home/user/.gitignore_global&lt;br /&gt;
&lt;br /&gt;
Tout cela permet de gérer la configuration globale, visible par&lt;br /&gt;
 git config --global -l&lt;br /&gt;
En enlevant ''--global'' dans toutes les commandes précédentes, on configure la copie locale.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de configuration ===&lt;br /&gt;
Voici un exemple de fichier ~/.gitconfig (qui stocke la configuration ''--global'', le même format peut être utilisé dans les fichier ''$REPO/.git/config'' de chaque dépot) :&lt;br /&gt;
 [gc]&lt;br /&gt;
    auto = 1&lt;br /&gt;
 [color]&lt;br /&gt;
    ui = true&lt;br /&gt;
 [color &amp;quot;diff&amp;quot;]&lt;br /&gt;
    whitespace = red reverse&lt;br /&gt;
 [core]&lt;br /&gt;
    whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol&lt;br /&gt;
 [alias]&lt;br /&gt;
    st = status&lt;br /&gt;
    ci = commit&lt;br /&gt;
    br = branch&lt;br /&gt;
    co = checkout&lt;br /&gt;
    df = diff&lt;br /&gt;
    dc = diff --cached&lt;br /&gt;
    lg = log -p&lt;br /&gt;
    lo = log --graph --decorate --pretty=oneline --abbrev-commit -n 10&lt;br /&gt;
    lol = log --graph --decorate --pretty=oneline --abbrev-commit&lt;br /&gt;
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all&lt;br /&gt;
    ls = ls-files&lt;br /&gt;
    # Show files ignored by git:&lt;br /&gt;
    ign = ls-files -o -i --exclude-standard&lt;br /&gt;
    amend = commit --amend -C HEAD&lt;br /&gt;
 [branch]&lt;br /&gt;
    autosetuprebase = always&lt;br /&gt;
&lt;br /&gt;
== Utiliser le proxy de l'X avec Git ==&lt;br /&gt;
Si vous hébergez un projet sur [http://www.github.com GitHub], vous avez envie de dire à Git de se connecter à GitHub en SSH en passant par le proxy de l'X (qui est [http://kuzh.polytechnique.fr:8080 kuzh:8080]). Pour cela, il suffit de configurer le client SSH pour utiliser le proxy à chaque connexion vers github.com. Cela s'effecute par le fichier de configuration suivant dans /home/user/.ssh/config (adaptez avec votre dossier personnel)&lt;br /&gt;
 Host github.com&lt;br /&gt;
     ProxyCommand socat - PROXY:kuzh.polytechnique.fr:%h:%p,proxyport=8080&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez utiliser le protocole git://, il faut utiliser socat, et créer un exécutable avec dedans :&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 exec socat STDIO PROXY:129.104.247.2:$1:$2&lt;br /&gt;
&lt;br /&gt;
Puis mettre cet executable dans la variable core.gitproxy :&lt;br /&gt;
 git config --global core.gitproxy NOM_DU_FICHIER&lt;br /&gt;
&lt;br /&gt;
N'oubliez pas d'enlever cette variable pour utiliser git en-dehors de l'X.&lt;br /&gt;
&lt;br /&gt;
'''Si vous souhaitez uniquement cloner un dépôt GitHub''' dont vous n'êtes pas contributeur, il suffit d'utiliser le lien HTTPS en ligne de commande, en précisant le proxy.&lt;br /&gt;
 export https_proxy=http://kuzh.polytechnique.fr:8080&lt;br /&gt;
 git clone https://github.com/BinetReseau/frankiz.git&lt;br /&gt;
&lt;br /&gt;
Finalement, si vous ne voulez pas vous connecter par ssh, mais vous souhaitez travailler normalement avec un depôt à l'extérieur de l'X, configurez git par le biais de ces commandes:&lt;br /&gt;
 git config --global http.proxy http://kuzh.polytechnique.fr:8080&lt;br /&gt;
 git config --global https.proxy http://kuzh.polytechnique.fr:8080&lt;br /&gt;
&lt;br /&gt;
Cela va effectuer les modifications correspondantes sur le fichier ~/.gitconfig. '''N'oubliez pas de les enlever dès que vous n'êtes plus connectés au réseau de l'école, avec''':&lt;br /&gt;
 git config --global --unset http.proxy http://kuzh.polytechnique.fr:8080 &lt;br /&gt;
&lt;br /&gt;
= Pour Windows =&lt;br /&gt;
&lt;br /&gt;
Pour utiliser Git sur Windows, on peut par exemple télécharger MSys Git : [http://msysgit.github.com/ http://msysgit.github.com/].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Root]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Frankiz&amp;diff=7821</id>
		<title>Frankiz</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Frankiz&amp;diff=7821"/>
		<updated>2013-04-18T16:13:50Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : ajout adresse git de plat/al et de frankiz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Frankiz est le portail interne des élèves.&lt;br /&gt;
&lt;br /&gt;
La version actuelle (3) a été lancée par le BR2k8 juste avant son départ du plateau. Elle est principalement destinée à pouvoir ouvrir l'utilisation de Frankiz aux écoles arrivant progressivement sur le plateau, et à devenir ainsi un portail de la vie associative du campus.&lt;br /&gt;
&lt;br /&gt;
Le code de Frankiz3 est libre, et utilise git comme système de versionnement.&lt;br /&gt;
Il est intégralement disponible à l'adresse suivante : http://dev.frankiz.net/ ou https://github.com/BinetReseau/frankiz&lt;br /&gt;
Le code de plat/al, le framework php utilisé par frankiz qui a été développé par polytechnique.org, est disponible ici : http://git.polytechnique.org/?p=platal.git;a=tree;hb=refs/heads/core/master&lt;br /&gt;
&lt;br /&gt;
= Développement =&lt;br /&gt;
&lt;br /&gt;
Les principaux projets de développement sont actuellement (juillet 2011) :&lt;br /&gt;
* l'élargissement effectif aux autres écoles, en travaillant notamment sur :&lt;br /&gt;
** la simplicité de création de nouveaux comptes, avec nomination de modérateurs dans chaque école&lt;br /&gt;
** le cloisonnement des données et la possibilité de définir des champs de visibilité&lt;br /&gt;
* la création de mini-forums qui remplaceraient à la fois les annonces et les newsgroups&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Outils pour les développeurs ==&lt;br /&gt;
=== Authentification sur des sites externes ===&lt;br /&gt;
&lt;br /&gt;
Frankiz permet à des sites externes (binets en particulier) d'utiliser sa base de données pour authentifier les utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Le webmaster du site en question doit auparavant faire une demande de mise en place de ce système en envoyant un mail à l'équipe frankiz (frankiz@frankiz.polytechnique.fr).&lt;br /&gt;
Il doit alors donner :&lt;br /&gt;
* l'url complète de la page de login de son site&lt;br /&gt;
* les informations auxquelles il souhaite accéder&lt;br /&gt;
* une justification de la demande (et oui, on ne partage évidemment pas notre base de données avec n'importe qui !)&lt;br /&gt;
&lt;br /&gt;
Si la demande est acceptée, l'équipe frankiz renvoie alors une clé permettant d'authentifier les échanges d'informations entre frankiz et le site externe.&lt;br /&gt;
Le site est alors inscrit dans notre base de données, et peut utiliser le système d'authentification externe.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez voir [[Authentification_Frankiz|un exemple de code]].&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Accueil&amp;diff=7820</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Accueil&amp;diff=7820"/>
		<updated>2013-04-16T19:04:34Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : Qu'est-ce qui court et qui se jette???      Une courgette!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC____NOEDITSECTION__&lt;br /&gt;
=== Bienvenue sur le site du BR ! ===&lt;br /&gt;
&lt;br /&gt;
Le Binet Réseau est l'association d'étudiants de l'[http://www.polytechnique.fr École polytechnique] qui s'occupent du réseau élève : maintenance des serveurs, mise en place de nouveaux services et développement (applications réseau et sites).&lt;br /&gt;
 &lt;br /&gt;
L'InfoBR est disponible [http://br.binets.fr/files/InfoBR_2k12_final.pdf ici] ou [https://ik.frankiz.net/pdfs/ik/InfoBR_2k12_final.pdf ici] pour la version 2012, et [https://ik.frankiz.net/pdfs/ik/InfoBR.pdf ici] pour la version 2011.&lt;br /&gt;
&lt;br /&gt;
L'InfoFrankiz est disponible [http://br.binets.fr/files/infoFrankiz.pdf ici]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; width: 46%; margin: 0 1% 0 0;&amp;quot;&amp;gt;&lt;br /&gt;
=Les ressources en ligne=&lt;br /&gt;
==Nos services==&lt;br /&gt;
* [[DNS|Le DNS des élèves]]&lt;br /&gt;
* [[MSDNAA|Le partenariat MSDNAA avec Microsoft]]&lt;br /&gt;
* [[Apple_on_Campus|Apple on Campus]]&lt;br /&gt;
* [[Serveur IRC|L'IRC sur le platal]]&lt;br /&gt;
* [[Miroir FTP|Le miroir FTP du BR]]&lt;br /&gt;
* [[TV|La TV dans les casert]]&lt;br /&gt;
* [[LDAP|L'annuaire LDAP (complétion automatique des adresses mail)]]&lt;br /&gt;
* [[Comptes_des_bars_élèves|Le site des bars d'etage]]&lt;br /&gt;
* [[Platalpad|L'édition collaborative de documents avec PlatalPad]]&lt;br /&gt;
* [[Hébergement_des_sites_des_binets|Hébergement des sites des binets]]&lt;br /&gt;
==Utilisation de nos services==&lt;br /&gt;
* [[Configuration du proxy|Comment configurer le proxy de l'X ?]]&lt;br /&gt;
* [[Configuration des clients pour le WiFi|Comment se connecter au WiFi ?]]&lt;br /&gt;
* [[Comptes Frankiz|Demander la création d'un compte Frankiz]]&lt;br /&gt;
* [[Diagnostic réseau|Comment diagnostiquer seul une panne du réseau ?]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right; width: 46%; margin: 0 1%;-moz-box-shadow: 1px 1px 12px #AAA; -webkit-box-shadow: 1px 1px 12px #AAA; padding: 1em; margin-top: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
===Le BR recrute===&lt;br /&gt;
Les membres du Binet Réseau ne sont pas pour autant tous des férus d'informatique et se partagent les taches en fonction de leurs capacités et de leurs envies : relations avec nos partenaires, communication avec les élèves constituent aussi des postes essentiels.&lt;br /&gt;
&lt;br /&gt;
Ainsi, le Binet Réseau offre une chance unique d'approfondir ses connaissances en informatique, au service des autres et en se faisant plaisir &lt;br /&gt;
----&lt;br /&gt;
=== Deviens un membre actif du BR ! ===&lt;br /&gt;
À n'importe quelle époque de l'année, viens nous voir et nous t'accueillerons à bras ouverts. Il y a toujours des choses à faire pour améliorer les services ou faire de nouveaux services.&lt;br /&gt;
&lt;br /&gt;
==Fiches techniques==&lt;br /&gt;
* [[Recuperation de donnees perdues|Comment récupérer mes données que j'ai effacées sur mon disque dur ?]]&lt;br /&gt;
* [[Sauvegarde (ordinateur)|Comment faire une sauvegarde complète de mon système Windows ?]]&lt;br /&gt;
* [[Git|Comment utiliser Git ? (Pour les projets en équipe)]]&lt;br /&gt;
* [[Astuces_ssh|Utiliser la protection ssh]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=N'hésite pas à nous contacter=&lt;br /&gt;
{| class=&amp;quot;tableau-support&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Par mail|support mail|Edit.png}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Au téléphone|support téléphone|Phone.png}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Sur IRC|support irc|Serveur.png}} {{block|En vrai|support vrai|People.png}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Accueil&amp;diff=7819</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Accueil&amp;diff=7819"/>
		<updated>2013-04-16T19:03:51Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC____NOEDITSECTION__&lt;br /&gt;
=== Bienvenue sur le site du BR ! ===&lt;br /&gt;
&lt;br /&gt;
Le Binet Réseau est l'association d'étudiants de l'[http://www.polytechnique.fr École polytechnique] qui s'occupent du réseau élève : maintenance des serveurs, mise en place de nouveaux services et développement (applications réseau et sites).&lt;br /&gt;
 &lt;br /&gt;
L'InfoBR est disponible [http://br.binets.fr/files/InfoBR_2k12_final.pdf ici] ou [https://ik.frankiz.net/pdfs/ik/InfoBR_2k12_final.pdf ici] pour la version 2012, et [https://ik.frankiz.net/pdfs/ik/InfoBR.pdf ici pour la version 2011].&lt;br /&gt;
&lt;br /&gt;
L'InfoFrankiz est disponible [http://br.binets.fr/files/infoFrankiz.pdf ici]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; width: 46%; margin: 0 1% 0 0;&amp;quot;&amp;gt;&lt;br /&gt;
=Les ressources en ligne=&lt;br /&gt;
==Nos services==&lt;br /&gt;
* [[DNS|Le DNS des élèves]]&lt;br /&gt;
* [[MSDNAA|Le partenariat MSDNAA avec Microsoft]]&lt;br /&gt;
* [[Apple_on_Campus|Apple on Campus]]&lt;br /&gt;
* [[Serveur IRC|L'IRC sur le platal]]&lt;br /&gt;
* [[Miroir FTP|Le miroir FTP du BR]]&lt;br /&gt;
* [[TV|La TV dans les casert]]&lt;br /&gt;
* [[LDAP|L'annuaire LDAP (complétion automatique des adresses mail)]]&lt;br /&gt;
* [[Comptes_des_bars_élèves|Le site des bars d'etage]]&lt;br /&gt;
* [[Platalpad|L'édition collaborative de documents avec PlatalPad]]&lt;br /&gt;
* [[Hébergement_des_sites_des_binets|Hébergement des sites des binets]]&lt;br /&gt;
==Utilisation de nos services==&lt;br /&gt;
* [[Configuration du proxy|Comment configurer le proxy de l'X ?]]&lt;br /&gt;
* [[Configuration des clients pour le WiFi|Comment se connecter au WiFi ?]]&lt;br /&gt;
* [[Comptes Frankiz|Demander la création d'un compte Frankiz]]&lt;br /&gt;
* [[Diagnostic réseau|Comment diagnostiquer seul une panne du réseau ?]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right; width: 46%; margin: 0 1%;-moz-box-shadow: 1px 1px 12px #AAA; -webkit-box-shadow: 1px 1px 12px #AAA; padding: 1em; margin-top: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
===Le BR recrute===&lt;br /&gt;
Les membres du Binet Réseau ne sont pas pour autant tous des férus d'informatique et se partagent les taches en fonction de leurs capacités et de leurs envies : relations avec nos partenaires, communication avec les élèves constituent aussi des postes essentiels.&lt;br /&gt;
&lt;br /&gt;
Ainsi, le Binet Réseau offre une chance unique d'approfondir ses connaissances en informatique, au service des autres et en se faisant plaisir &lt;br /&gt;
----&lt;br /&gt;
=== Deviens un membre actif du BR ! ===&lt;br /&gt;
À n'importe quelle époque de l'année, viens nous voir et nous t'accueillerons à bras ouverts. Il y a toujours des choses à faire pour améliorer les services ou faire de nouveaux services.&lt;br /&gt;
&lt;br /&gt;
==Fiches techniques==&lt;br /&gt;
* [[Recuperation de donnees perdues|Comment récupérer mes données que j'ai effacées sur mon disque dur ?]]&lt;br /&gt;
* [[Sauvegarde (ordinateur)|Comment faire une sauvegarde complète de mon système Windows ?]]&lt;br /&gt;
* [[Git|Comment utiliser Git ? (Pour les projets en équipe)]]&lt;br /&gt;
* [[Astuces_ssh|Utiliser la protection ssh]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=N'hésite pas à nous contacter=&lt;br /&gt;
{| class=&amp;quot;tableau-support&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Par mail|support mail|Edit.png}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Au téléphone|support téléphone|Phone.png}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Sur IRC|support irc|Serveur.png}} {{block|En vrai|support vrai|People.png}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Accueil&amp;diff=7818</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Accueil&amp;diff=7818"/>
		<updated>2013-04-16T19:03:27Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : lien infobr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC____NOEDITSECTION__&lt;br /&gt;
=== Bienvenue sur le site du BR ! ===&lt;br /&gt;
&lt;br /&gt;
Le Binet Réseau est l'association d'étudiants de l'[http://www.polytechnique.fr École polytechnique] qui s'occupent du réseau élève : maintenance des serveurs, mise en place de nouveaux services et développement (applications réseau et sites).&lt;br /&gt;
 &lt;br /&gt;
L'InfoBR est disponible [http://br.binets.fr/files/InfoBR_2k12_final.pdf ici] ou [https://ik.frankiz.net/pdfs/ik/InfoBR_2k12_final.pdf ici pour la version 2012], et [https://ik.frankiz.net/pdfs/ik/InfoBR.pdf ici pour la version 2011].&lt;br /&gt;
&lt;br /&gt;
L'InfoFrankiz est disponible [http://br.binets.fr/files/infoFrankiz.pdf ici]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; width: 46%; margin: 0 1% 0 0;&amp;quot;&amp;gt;&lt;br /&gt;
=Les ressources en ligne=&lt;br /&gt;
==Nos services==&lt;br /&gt;
* [[DNS|Le DNS des élèves]]&lt;br /&gt;
* [[MSDNAA|Le partenariat MSDNAA avec Microsoft]]&lt;br /&gt;
* [[Apple_on_Campus|Apple on Campus]]&lt;br /&gt;
* [[Serveur IRC|L'IRC sur le platal]]&lt;br /&gt;
* [[Miroir FTP|Le miroir FTP du BR]]&lt;br /&gt;
* [[TV|La TV dans les casert]]&lt;br /&gt;
* [[LDAP|L'annuaire LDAP (complétion automatique des adresses mail)]]&lt;br /&gt;
* [[Comptes_des_bars_élèves|Le site des bars d'etage]]&lt;br /&gt;
* [[Platalpad|L'édition collaborative de documents avec PlatalPad]]&lt;br /&gt;
* [[Hébergement_des_sites_des_binets|Hébergement des sites des binets]]&lt;br /&gt;
==Utilisation de nos services==&lt;br /&gt;
* [[Configuration du proxy|Comment configurer le proxy de l'X ?]]&lt;br /&gt;
* [[Configuration des clients pour le WiFi|Comment se connecter au WiFi ?]]&lt;br /&gt;
* [[Comptes Frankiz|Demander la création d'un compte Frankiz]]&lt;br /&gt;
* [[Diagnostic réseau|Comment diagnostiquer seul une panne du réseau ?]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right; width: 46%; margin: 0 1%;-moz-box-shadow: 1px 1px 12px #AAA; -webkit-box-shadow: 1px 1px 12px #AAA; padding: 1em; margin-top: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
===Le BR recrute===&lt;br /&gt;
Les membres du Binet Réseau ne sont pas pour autant tous des férus d'informatique et se partagent les taches en fonction de leurs capacités et de leurs envies : relations avec nos partenaires, communication avec les élèves constituent aussi des postes essentiels.&lt;br /&gt;
&lt;br /&gt;
Ainsi, le Binet Réseau offre une chance unique d'approfondir ses connaissances en informatique, au service des autres et en se faisant plaisir &lt;br /&gt;
----&lt;br /&gt;
=== Deviens un membre actif du BR ! ===&lt;br /&gt;
À n'importe quelle époque de l'année, viens nous voir et nous t'accueillerons à bras ouverts. Il y a toujours des choses à faire pour améliorer les services ou faire de nouveaux services.&lt;br /&gt;
&lt;br /&gt;
==Fiches techniques==&lt;br /&gt;
* [[Recuperation de donnees perdues|Comment récupérer mes données que j'ai effacées sur mon disque dur ?]]&lt;br /&gt;
* [[Sauvegarde (ordinateur)|Comment faire une sauvegarde complète de mon système Windows ?]]&lt;br /&gt;
* [[Git|Comment utiliser Git ? (Pour les projets en équipe)]]&lt;br /&gt;
* [[Astuces_ssh|Utiliser la protection ssh]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=N'hésite pas à nous contacter=&lt;br /&gt;
{| class=&amp;quot;tableau-support&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Par mail|support mail|Edit.png}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Au téléphone|support téléphone|Phone.png}}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{block|Sur IRC|support irc|Serveur.png}} {{block|En vrai|support vrai|People.png}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Authentification_Frankiz&amp;diff=7817</id>
		<title>Authentification Frankiz</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Authentification_Frankiz&amp;diff=7817"/>
		<updated>2013-04-14T20:17:28Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : clarification, mise a jour adresse mail&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Frankiz permet à des sites externes (binets en particulier) d'utiliser sa base de données pour authentifier les utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Le webmaster du site en question doit auparavant faire une demande de mise en place de ce système en envoyant un mail à l'équipe frankiz ([mailto:web@eleves.polytechnique.fr web@eleves.polytechnique.fr]).&lt;br /&gt;
Il doit alors donner :&lt;br /&gt;
* l'url complète de la page de login de son site&lt;br /&gt;
* les informations auxquelles il souhaite accéder&lt;br /&gt;
* une justification de la demande (et oui, on ne partage évidemment pas notre base de données avec n'importe qui !)&lt;br /&gt;
&lt;br /&gt;
Si la demande est acceptée, un web va alors inscrire ton site dans notre base de donnée de sites externes et générer une clé qu'il va te communiquer. Cette opération se déroule via l'interface d'administration de frankiz. Cette clé va te permettre d'authentifier les échanges d'informations entre frankiz et le site externe.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un exemple commenté de script d'authentification, à mettre sur le site externe :&lt;br /&gt;
&lt;br /&gt;
==Code de la page d'identification==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 include 'fkz_auth.php';&lt;br /&gt;
 if(!isset($_GET['response'])){&lt;br /&gt;
   frankiz_do_auth();&lt;br /&gt;
 }&lt;br /&gt;
 $auth = frankiz_get_response();&lt;br /&gt;
 // et voila !&lt;br /&gt;
 // les données sont stockées dans $auth = array(key =&amp;gt; value, ...);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Code des fonctions utilisées dans ''fkz_auth.php''==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 /**&lt;br /&gt;
 * Clé secrète fournie par l'équipe frankiz lors de l'inscription du site.&lt;br /&gt;
 * Cette clé sert à signer les requêtes et à authentifier le site.&lt;br /&gt;
 */&lt;br /&gt;
 $FKZ_KEY = &amp;quot;000&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 function frankiz_do_auth(){&lt;br /&gt;
    global $FKZ_KEY;&lt;br /&gt;
   /**&lt;br /&gt;
    * Prendre le timestamp permet d'éviter le rejeu de la requête&lt;br /&gt;
    */&lt;br /&gt;
   $timestamp = time();&lt;br /&gt;
   /**&lt;br /&gt;
    * url de la page de login, doit correspondre *exactement* à celle entrée dans&lt;br /&gt;
    * la base de données de Frankiz (définie lors de l'inscription)&lt;br /&gt;
    */&lt;br /&gt;
   $site = 'http://monsite/login';&lt;br /&gt;
   /**&lt;br /&gt;
    * Champ non utile pour l'authentification et retransmis tel quel par frankiz. &lt;br /&gt;
    * Il est prévu pour pouvoir mettre en place un système de redirection après &lt;br /&gt;
    * authentification, vers la page à partir de laquelle le client avait tenté de se connecter.&lt;br /&gt;
    */&lt;br /&gt;
   $location  = &amp;quot;...&amp;quot; &lt;br /&gt;
   /**&lt;br /&gt;
    * Nature de la requête.&lt;br /&gt;
    * Fkz renverra ici à la fois les noms de la personne mais aussi ses droits dans différents groupes.&lt;br /&gt;
    * Il faut cependant que le site ait les droits sur les informations en question (à définir lors de son inscription).&lt;br /&gt;
    */&lt;br /&gt;
   $request = json_encode(array('names', 'rights', 'email', 'sport', 'promo', 'photo'));&lt;br /&gt;
   &lt;br /&gt;
   $hash = md5($timestamp . $site . $FKZ_KEY . $request);&lt;br /&gt;
   &lt;br /&gt;
   $remote  = 'https://www.frankiz.net/remote?timestamp=' . $timestamp .&lt;br /&gt;
       '&amp;amp;site=' . $site .&lt;br /&gt;
       '&amp;amp;location=' . $location .&lt;br /&gt;
       '&amp;amp;hash=' . $hash .&lt;br /&gt;
       '&amp;amp;request=' . $request;&lt;br /&gt;
    header(&amp;quot;Location:&amp;quot; . $remote);&lt;br /&gt;
    exit();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function frankiz_get_response(){&lt;br /&gt;
    global $FKZ_KEY;&lt;br /&gt;
    // Read request&lt;br /&gt;
    $timestamp = (isset($_GET['timestamp']) ? $_GET['timestamp'] : 0);&lt;br /&gt;
    $response  = (isset($_GET['response'])  ? urldecode($_GET['response'])  : '');&lt;br /&gt;
    $hash      = (isset($_GET['hash'])      ? $_GET['hash']      : '');&lt;br /&gt;
    $location  = (isset($_GET['location'])  ? $_GET['location']  : '');&lt;br /&gt;
 &lt;br /&gt;
    // Frankiz security protocol&lt;br /&gt;
    if (abs($timestamp - time()) &amp;gt; 600)&lt;br /&gt;
       die(&amp;quot;Délai de réponse dépassé. Annulation de la requête&amp;quot;);&lt;br /&gt;
    if (md5($timestamp . $FKZ_KEY . $response) != $hash)&lt;br /&gt;
       die(&amp;quot;Session compromise.&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    $response = json_decode($response, true);&lt;br /&gt;
    $response['location'] = $location;&lt;br /&gt;
 &lt;br /&gt;
    // Set empty fields&lt;br /&gt;
    $fields = array('hruid',&lt;br /&gt;
      'firstname', 'lastname', 'nickname',&lt;br /&gt;
      'promo', 'photo', 'location');&lt;br /&gt;
    foreach ($fields as $k) {&lt;br /&gt;
       if (!isset($response[$k]))&lt;br /&gt;
       $response[$k] = '';&lt;br /&gt;
    }&lt;br /&gt;
    return $response;&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bugs vécu==&lt;br /&gt;
&lt;br /&gt;
Si authentification fonctionne sur certains navigateurs, vérifier les variables $_GET car elles sont peut être doublement encodées. Dans ce cas, soit refaire '''urldecode''', soit un &lt;br /&gt;
 $s = str_replace('%22','&amp;quot;',$s);&lt;br /&gt;
Si il y a un problème avec les encodages en \u''machinchose'' pour les caractères accentués, voila une fonction qui peut vous servir (reconversion en UTF-8) :&lt;br /&gt;
 function jsonClean($s) {&lt;br /&gt;
   return preg_replace(&amp;quot;/\\\\u([a-f0-9]{4})/e&amp;quot;, &amp;quot;iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))&amp;quot;,$s);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Dev]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Screen_et_IRC&amp;diff=7815</id>
		<title>Screen et IRC</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Screen_et_IRC&amp;diff=7815"/>
		<updated>2013-04-13T14:23:32Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : /* ~/.irssi/config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu IRC}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
C'est important de venir sur IRC chatter avec les membres du BR. Cela permet de discuter avec les autres BRmen, ce qui en plus d'être sympathique, est quand même quelque chose de parfois fondamental dans le travail de BRmen (quel qu'il soit), et donc dans le bon fonctionnement du BR de manière plus générale. Par ailleurs, on peut y trouver des anciens souvent disponibles, qui sont assez pratiques lorsqu'on a des questions. Le but de cet article est d'expliquer comment utiliser IRC comme un vrai BRman (ou une vraie BRwoman).&lt;br /&gt;
&lt;br /&gt;
=== screen ? moaz ? IRC ? Petit tour d'horizon pour ceux qui sont déjà perdus ===&lt;br /&gt;
&lt;br /&gt;
Tu peux trouver plus d'infos sur l'utilisation d'IRC à l'X [http://wikix.polytechnique.org/IRC sur le WikiX] ; voici juste un résumé de ce qui est utile à savoir : pour utiliser IRC, il faut se connecter à un serveur (ici, le serveur IRC du BR) par un logiciel que l'on appelle un client IRC. Les gens normaux utilisent un client IRC directement sur leur ordinateur pour se connecter à un serveur IRC (''cf'' la page du WikiX) ; mais au BR, on fait ça de façon un peu plus contournée mais beaucoup plus pratique - comme tu le verras par la suite. D'où cette page qui sert à expliquer cette méthode, dont je te conseille l'utilisation, quel que soit ton degré d'affinité avec les ordinateurs - elle n'est pas plus compliquée que la méthode normale et le gain est énorme.&lt;br /&gt;
&lt;br /&gt;
Continuons notre tour d'horizon : screen est un logiciel qui permet de laisser fonctionner une session sur une machine distante, même lorsqu'on n'est plus en train d'utiliser cette machine (entre autres et en un peu simplifié, mais c'est cette fonctionnalité précise qui nous intéressera ici). L'idée, en l'occurrence, c'est de pouvoir laisser tourner un client IRC sur une machine du BR (et pas sur son ordinateur !), de façon à ne pas se déconnecter d'IRC lorsqu'on éteint son ordi (puisque le client IRC est sur la machine du BR, et pas sur son ordi personnel). On se connecte alors à la machine du BR pour utiliser le client IRC qui y tourne ; donc en gros, tout se déroule comme si on utilisait un client IRC sur son ordinateur, sauf qu'on utilise à la place un logiciel pour se connecter à une machine du BR et utiliser le client IRC qui fonctionne déjà sur cette machine, avec l'avantage que cette machine là ne s'éteint jamais (en principe). Cet avantage te parait peut-être minime, mais il est en fait assez fondamental : comme tout le monde n'est pas devant son ordinateur en même temps, il permet de pouvoir tenir des discussions sur IRC sans avoir à se déconnecter en plein milieu de la discussion parce qu'on va en cours ou parce que son ordi ne marche plus ; par ailleurs, de façon équivalente, il permet de garder l'historique des conversations à disposition sans passer par les logs. Enfin, de plus, il permet aussi de pouvoir accéder au client IRC par n'importe quel ordinateur qui peut se connecter à la machine du BR (donc n'importe quel ordinateur qui se trouve sur le platâl, ou même un smartphone qui se connecte via le wi-fi de la DSI... c'est une façon comme une autre de s'occuper en conf DFHM), et retrouver ainsi ses discussions sur IRC même si on utilise pas son propre ordinateur (enfin, il faut quand même faire attention lorsqu'on utilise un ordinateur public).&lt;br /&gt;
&lt;br /&gt;
Et pour finir, moaz, c'est le petit nom de la machine du BR qui va héberger ton screen et ton client IRC persistant, et à laquelle tu vas se connecter pour les retrouver. Ainsi, pour résumer ce tour d'horizon, créer un screen sur moaz, cela te permet de laisser tourner ton client IRC (en l'occurrence irssi) tout le temps, et y accéder quand tu veux (voire d'où tu veux).&lt;br /&gt;
&lt;br /&gt;
== Se connecter sur moaz ==&lt;br /&gt;
&lt;br /&gt;
La connexion à moaz est la première étape à suivre. Pour se connecter à moaz, il y faut un compte ; en principe, on te l'a déjà créé, et si ce n'est pas le cas (ou si tu n'en sais rien), contacte un root (genre ton prez, il aime ça). Maintenant, la procédure pour se connecter à moaz est très simple et tu l'as peut-être même déjà suivie dans un autre cadre : il s'agit rigoureusement de la même que celle expliquée [http://wikix.polytechnique.org/eleves/wikix/Acc%C3%A8s_%C3%A0_distance_aux_ordinateurs_des_salles_info ici] pour accéder en ssh (''id est'' juste ouvrir une console) à un ordi des salles infos, sauf qu'à la place du nom de l'ordinateur de la salle info tu mets &amp;quot;moaz&amp;quot;. Donc avec windows cela revient juste à lancer PuTTY, taper &amp;quot;moaz&amp;quot; pour le nom d'hôte, vérifier que le mode de connexion &amp;quot;SSH&amp;quot; est bien sélectionné, et cliquer sur &amp;quot;Open&amp;quot; ; sous Linux, cela revient à taper &amp;lt;code&amp;gt;ssh nom_d_utilisateur_sur_moaz@moaz&amp;lt;/code&amp;gt; ; sous mac, je te laisse deviner.&lt;br /&gt;
&lt;br /&gt;
== Utilisation de screen avec irssi == &lt;br /&gt;
&lt;br /&gt;
Une fois connecté sur moaz, lance screen. On arrive à une petite subtilité. Comme tu le sais maintenant, screen permet de lancer une session qui continue d'exister sur moaz une fois qu'on soit parti ; donc si tu as déjà lancé screen avant, et que tu te connectes sur moaz plus tard, il ne faut pas le lancer une seconde fois, il faut rejoindre la session déjà lancée. Par contre si tu n'as jamais lancé screen avant, il faut bien créer une session...&lt;br /&gt;
&lt;br /&gt;
La commande suivante fait ce qu'il faut : si le screen &amp;lt;nowiki&amp;gt;irc&amp;lt;/nowiki&amp;gt; (on pourrait choisir d'appeler son screen n'importe comment, ou de ne pas le nommer) n'existe pas, il est crée ; si le screen existe on le ré-attache (on le rejoint).&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$ screen -RDU irc&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ceci étant fait, tu es maintenant dans ta session screen ; partant de là, soit tu vois déjà IRC (si tu as rejoins une session qui existait déjà, et où irssi était déjà lancé, ce qui devrait généralement être le cas), soit tu ne vois pas IRC (si tu viens de lancer screen pour la première fois) et pour le lancer il te suffit de taper&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$ irssi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et hop, maintenant tu es connecté à IRC ! Bienvenue !&lt;br /&gt;
&lt;br /&gt;
== Déconnexion ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on souhaite se déconnecter de moaz (pour redémarrer son ordi perso par exemple), il faut &amp;quot;détacher&amp;quot; le screen, avec C-a d (ça veut dire appuyer sur Ctrl et a en même temps, relâcher, puis appuyer sur d), ce qui ramène à la console de moaz depuis laquelle on peut fermer la session sur moaz (avec C-d sous linux, plus prosaïquement en fermant PuTTY sous Windows). La session screen et donc le client IRC irssi continuent alors à tourner sur moaz alors qu'on est déconnecté. Pour revenir, il suffit de se reconnecter à moaz puis de rejoindre le screen (mais tu sais déjà faire tout cela, non ?).&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
&lt;br /&gt;
Si tu as déjà compris le principe d'utiliser screen et de te connecter à IRC et tout, ou si tu t'en fous et que tu veux juste aller vite, voici un résumé des actions à faire pour se connecter à IRC :&lt;br /&gt;
# Se connecter à moaz (PuTTY / &amp;lt;code&amp;gt;$ssh login@moaz&amp;lt;/code&amp;gt; / ...)&lt;br /&gt;
# Rattacher ( = rejoindre) ta session screen avec &amp;lt;code&amp;gt;$ screen -RD irc&amp;lt;/code&amp;gt;&lt;br /&gt;
# Éventuellement, lancer irssi avec &amp;lt;code&amp;gt;$ irssi&amp;lt;/code&amp;gt; s'il n'est pas déjà en train de tourner&lt;br /&gt;
# Enjoy chatting&lt;br /&gt;
&lt;br /&gt;
== Articles connexes ==&lt;br /&gt;
&lt;br /&gt;
La page [[:screen]] contient des informations plus détaillées sur screen.&lt;br /&gt;
&lt;br /&gt;
== Références externes ==&lt;br /&gt;
&lt;br /&gt;
* [http://quadpoint.org/articles/irssi/ http://quadpoint.org/articles/irssi/] A Guide to Efficiently Using Irssi and Screen. Cette page contient les informations pour créer une fenêtre de highlight :&lt;br /&gt;
&lt;br /&gt;
 /window new split&lt;br /&gt;
 /window name hilight&lt;br /&gt;
 /window size 6&lt;br /&gt;
&lt;br /&gt;
OU :&lt;br /&gt;
 /window new hidden&lt;br /&gt;
 /window name hilight&lt;br /&gt;
&lt;br /&gt;
== Fichiers de config ==&lt;br /&gt;
Voilà des fichiers de config pour irssi et screen :&lt;br /&gt;
===~/.screenrc===&lt;br /&gt;
 bell_msg &amp;quot;^G Bell in window %n&amp;quot;&lt;br /&gt;
 autodetach on&lt;br /&gt;
 startup_message off&lt;br /&gt;
 nonblock on&lt;br /&gt;
 vbell on&lt;br /&gt;
 defutf8 on&lt;br /&gt;
 defscrollback 1000&lt;br /&gt;
 &lt;br /&gt;
 caption always&lt;br /&gt;
 hardstatus string &amp;quot;%?%F%{= kG}%:%{= Wk}%? [$USER@%H] %n : %t&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Always show lastline&lt;br /&gt;
 caption string &amp;quot;%{= g}[ %{G}${USER}@%H%{g} ][%= %{= w}%?%-Lw%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c:%s %{g}][%{Y}%l%{g}]%{=b C}%{W}&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Allow scrollback in xterm&lt;br /&gt;
 termcap xterm* LP&lt;br /&gt;
 termcapinfo xterm ti@:te@&lt;br /&gt;
&lt;br /&gt;
===~/.irssi/config===&lt;br /&gt;
 servers = (&lt;br /&gt;
  {&lt;br /&gt;
    address = &amp;quot;ircserver&amp;quot;;&lt;br /&gt;
    chatnet = &amp;quot;RezoSup&amp;quot;;&lt;br /&gt;
    port = &amp;quot;6767&amp;quot;;&lt;br /&gt;
    use_ssl = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    ssl_verify = &amp;quot;no&amp;quot;;&lt;br /&gt;
    autoconnect = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    no_proxy = &amp;quot;yes&amp;quot;;&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    address = &amp;quot;irc.freenode.net&amp;quot;;&lt;br /&gt;
    chatnet = &amp;quot;FreeNode&amp;quot;;&lt;br /&gt;
    port = &amp;quot;6667&amp;quot;;&lt;br /&gt;
    autoconnect = &amp;quot;yes&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 chatnets = {&lt;br /&gt;
  RezoSup = {&lt;br /&gt;
    type = &amp;quot;IRC&amp;quot;;&lt;br /&gt;
    nick = &amp;quot;Arthur&amp;quot;;&lt;br /&gt;
    autosendcmd = &amp;quot;/^msg nickserv IDENTIFY ******;&amp;quot;;&lt;br /&gt;
  };&lt;br /&gt;
  FreeNode = {&lt;br /&gt;
    type = &amp;quot;IRC&amp;quot;;&lt;br /&gt;
    nick = &amp;quot;ArthurD&amp;quot;;&lt;br /&gt;
    autosendcmd = &amp;quot;/^msg nickserv identify ******;&amp;quot;;&lt;br /&gt;
  };&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 channels = (&lt;br /&gt;
  { name = &amp;quot;#root-br&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#br-actif&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#br2k9&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#frankiz&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#news-br&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#web-br&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#br&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#irc-br&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#opers&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#x&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#federez&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#ascii&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#admin-windows&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#infobr&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#xnet&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#ailleurs&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #TODO:Check if wanted# &lt;br /&gt;
 &lt;br /&gt;
  #  { name = &amp;quot;#poly.org&amp;quot;; chatnet = &amp;quot;Freenode&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#archlinux&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { name = &amp;quot;#archlinux-fr&amp;quot;; chatnet = &amp;quot;Freenode&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#gentoo&amp;quot;; chatnet = &amp;quot;Freenode&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; }&lt;br /&gt;
  #  { name = &amp;quot;#physique&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#bural-br&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#resel&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#boulets&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#pi_perceptron&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#pendaison&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#br-vieux&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#br-private&amp;quot;; chatnet = &amp;quot;RezoSup&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  #  { name = &amp;quot;#channel&amp;quot;; chatnet = &amp;quot;freenode&amp;quot;; autojoin = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 aliases = {&lt;br /&gt;
  J = &amp;quot;join&amp;quot;;&lt;br /&gt;
  WJOIN = &amp;quot;join -window&amp;quot;;&lt;br /&gt;
  WQUERY = &amp;quot;query -window&amp;quot;;&lt;br /&gt;
  LEAVE = &amp;quot;part&amp;quot;;&lt;br /&gt;
  BYE = &amp;quot;quit&amp;quot;;&lt;br /&gt;
  EXIT = &amp;quot;quit&amp;quot;;&lt;br /&gt;
  SIGNOFF = &amp;quot;quit&amp;quot;;&lt;br /&gt;
  DESCRIBE = &amp;quot;action&amp;quot;;&lt;br /&gt;
  DATE = &amp;quot;time&amp;quot;;&lt;br /&gt;
  HOST = &amp;quot;userhost&amp;quot;;&lt;br /&gt;
  LAST = &amp;quot;lastlog&amp;quot;;&lt;br /&gt;
  SAY = &amp;quot;msg *&amp;quot;;&lt;br /&gt;
  WI = &amp;quot;whois&amp;quot;;&lt;br /&gt;
  WII = &amp;quot;whois $0 $0&amp;quot;;&lt;br /&gt;
  WW = &amp;quot;whowas&amp;quot;;&lt;br /&gt;
  W = &amp;quot;who&amp;quot;;&lt;br /&gt;
  N = &amp;quot;names&amp;quot;;&lt;br /&gt;
  M = &amp;quot;msg&amp;quot;;&lt;br /&gt;
  T = &amp;quot;topic&amp;quot;;&lt;br /&gt;
  C = &amp;quot;clear&amp;quot;;&lt;br /&gt;
  CL = &amp;quot;clear&amp;quot;;&lt;br /&gt;
  K = &amp;quot;kick&amp;quot;;&lt;br /&gt;
  KB = &amp;quot;kickban&amp;quot;;&lt;br /&gt;
  KN = &amp;quot;knockout&amp;quot;;&lt;br /&gt;
  BANS = &amp;quot;ban&amp;quot;;&lt;br /&gt;
  B = &amp;quot;ban&amp;quot;;&lt;br /&gt;
  MUB = &amp;quot;unban *&amp;quot;;&lt;br /&gt;
  UB = &amp;quot;unban&amp;quot;;&lt;br /&gt;
  IG = &amp;quot;ignore&amp;quot;;&lt;br /&gt;
  UNIG = &amp;quot;unignore&amp;quot;;&lt;br /&gt;
  SB = &amp;quot;scrollback&amp;quot;;&lt;br /&gt;
  UMODE = &amp;quot;mode $N&amp;quot;;&lt;br /&gt;
  WC = &amp;quot;window close&amp;quot;;&lt;br /&gt;
  WN = &amp;quot;window new hide&amp;quot;;&lt;br /&gt;
  SV = &amp;quot;say Irssi $J ($V) - http://irssi.org/&amp;quot;;&lt;br /&gt;
  GOTO = &amp;quot;sb goto&amp;quot;;&lt;br /&gt;
  CHAT = &amp;quot;dcc chat&amp;quot;;&lt;br /&gt;
  RUN = &amp;quot;SCRIPT LOAD&amp;quot;;&lt;br /&gt;
  UPTIME = &amp;quot;eval exec - expr `date +%s` - \\$F | awk '{print \&amp;quot;Irssi uptime: \&amp;quot;int(\\\\\\$1/3600/24)\&amp;quot;d \&amp;quot;int(\\\\\\$1/3600%24)\&amp;quot;h \&amp;quot;int(\\\\\\$1/60%60)\&amp;quot;m \&amp;quot;int(\\\\\\$1%60)\&amp;quot;s\&amp;quot; }'&amp;quot;;&lt;br /&gt;
  CALC = &amp;quot;exec - if which bc &amp;amp;&amp;gt;/dev/null\\; then echo '$*' | bc | awk '{print \&amp;quot;$*=\&amp;quot;$$1}'\\; else echo bc was not found\\; fi&amp;quot;;&lt;br /&gt;
  SBAR = &amp;quot;STATUSBAR&amp;quot;;&lt;br /&gt;
  INVITELIST = &amp;quot;mode $C +I&amp;quot;;&lt;br /&gt;
  Q = &amp;quot;QUERY&amp;quot;;&lt;br /&gt;
  &amp;quot;MANUAL-WINDOWS&amp;quot; = &amp;quot;set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save&amp;quot;;&lt;br /&gt;
  EXEMPTLIST = &amp;quot;mode $C +e&amp;quot;;&lt;br /&gt;
  ATAG = &amp;quot;WINDOW SERVER&amp;quot;;&lt;br /&gt;
  ADDALLCHANNELS = &amp;quot;script exec foreach my \\$channel (Irssi::channels()) { Irssi::command(\&amp;quot;channel add -auto \\$channel-&amp;gt;{name} \\$channel-&amp;gt;{server}-&amp;gt;{tag} \\$channel-&amp;gt;{key}\&amp;quot;)\\;}&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 statusbar = {&lt;br /&gt;
  # formats:&lt;br /&gt;
  # when using {templates}, the template is shown only if it's argument isn't&lt;br /&gt;
  # empty unless no argument is given. for example {sb} is printed always,&lt;br /&gt;
  # but {sb $T} is printed only if $T isn't empty.&lt;br /&gt;
  items = {&lt;br /&gt;
    # start/end text in statusbars&lt;br /&gt;
    barstart = &amp;quot;{sbstart}&amp;quot;;&lt;br /&gt;
    barend = &amp;quot;{sbend}&amp;quot;;&lt;br /&gt;
    topicbarstart = &amp;quot;{topicsbstart}&amp;quot;;&lt;br /&gt;
    topicbarend = &amp;quot;{topicsbend}&amp;quot;;&lt;br /&gt;
    # treated &amp;quot;normally&amp;quot;, you could change the time/user name to whatever&lt;br /&gt;
    time = &amp;quot;{sb $Z}&amp;quot;;&lt;br /&gt;
    user = &amp;quot;{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}&amp;quot;;&lt;br /&gt;
    # treated specially .. window is printed with non-empty windows,&lt;br /&gt;
    # window_empty is printed with empty windows&lt;br /&gt;
    window = &amp;quot;{sb $winref:$itemname{sbmode $M}}&amp;quot;;&lt;br /&gt;
    window_empty = &amp;quot;{sb $winref{sbservertag $tag}}&amp;quot;;&lt;br /&gt;
    prompt = &amp;quot;{prompt $[.15]itemname}&amp;quot;;&lt;br /&gt;
    prompt_empty = &amp;quot;{prompt $winname}&amp;quot;;&lt;br /&gt;
    topic = &amp;quot; $topic&amp;quot;;&lt;br /&gt;
    topic_empty = &amp;quot; Irssi v$J - http://irssi.org/help/&amp;quot;;&lt;br /&gt;
    # all of these treated specially, they're only displayed when needed&lt;br /&gt;
    lag = &amp;quot;{sb Lag: $0-}&amp;quot;;&lt;br /&gt;
    act = &amp;quot;{sb Act: $0-}&amp;quot;;&lt;br /&gt;
    more = &amp;quot;-- more --&amp;quot;;&lt;br /&gt;
  };&lt;br /&gt;
  # there's two type of statusbars. root statusbars are either at the top&lt;br /&gt;
  # of the screen or at the bottom of the screen. window statusbars are at&lt;br /&gt;
  # the top/bottom of each split window in screen.&lt;br /&gt;
 &lt;br /&gt;
  default = {&lt;br /&gt;
    # the &amp;quot;default statusbar&amp;quot; to be displayed at the bottom of the window.&lt;br /&gt;
    # contains all the normal items.&lt;br /&gt;
    window = {&lt;br /&gt;
      disabled = &amp;quot;no&amp;quot;;&lt;br /&gt;
      # window, root&lt;br /&gt;
      type = &amp;quot;window&amp;quot;;&lt;br /&gt;
      # top, bottom&lt;br /&gt;
      placement = &amp;quot;bottom&amp;quot;;&lt;br /&gt;
      # number&lt;br /&gt;
      position = &amp;quot;1&amp;quot;;&lt;br /&gt;
      # active, inactive, always&lt;br /&gt;
      visible = &amp;quot;active&amp;quot;;&lt;br /&gt;
      # list of items in statusbar in the display order&lt;br /&gt;
      items = {&lt;br /&gt;
        barstart = { priority = &amp;quot;100&amp;quot;; };&lt;br /&gt;
        time = { };&lt;br /&gt;
        user = { };&lt;br /&gt;
        window = { };&lt;br /&gt;
        window_empty = { };&lt;br /&gt;
        lag = { priority = &amp;quot;-1&amp;quot;; };&lt;br /&gt;
        more = { priority = &amp;quot;-1&amp;quot;; alignment = &amp;quot;right&amp;quot;; };&lt;br /&gt;
        barend = { priority = &amp;quot;100&amp;quot;; alignment = &amp;quot;right&amp;quot;; };&lt;br /&gt;
        usercount = { };&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
    # statusbar to use in inactive split windows&lt;br /&gt;
    window_inact = {&lt;br /&gt;
      type = &amp;quot;window&amp;quot;;&lt;br /&gt;
      placement = &amp;quot;bottom&amp;quot;;&lt;br /&gt;
      position = &amp;quot;1&amp;quot;;&lt;br /&gt;
      visible = &amp;quot;inactive&amp;quot;;&lt;br /&gt;
      items = {&lt;br /&gt;
        barstart = { priority = &amp;quot;100&amp;quot;; };&lt;br /&gt;
        window = { };&lt;br /&gt;
        window_empty = { };&lt;br /&gt;
        more = { priority = &amp;quot;-1&amp;quot;; alignment = &amp;quot;right&amp;quot;; };&lt;br /&gt;
        barend = { priority = &amp;quot;100&amp;quot;; alignment = &amp;quot;right&amp;quot;; };&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
    # we treat input line as yet another statusbar :) It's possible to&lt;br /&gt;
    # add other items before or after the input line item.&lt;br /&gt;
    prompt = {&lt;br /&gt;
      type = &amp;quot;root&amp;quot;;&lt;br /&gt;
      placement = &amp;quot;bottom&amp;quot;;&lt;br /&gt;
      # we want to be at the bottom always&lt;br /&gt;
      position = &amp;quot;100&amp;quot;;&lt;br /&gt;
      visible = &amp;quot;always&amp;quot;;&lt;br /&gt;
      items = {&lt;br /&gt;
        prompt = { priority = &amp;quot;-1&amp;quot;; };&lt;br /&gt;
        prompt_empty = { priority = &amp;quot;-1&amp;quot;; };&lt;br /&gt;
        # treated specially, this is the real input line.&lt;br /&gt;
        input = { priority = &amp;quot;10&amp;quot;; };&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
    # topicbar&lt;br /&gt;
    topic = {&lt;br /&gt;
      type = &amp;quot;root&amp;quot;;&lt;br /&gt;
      placement = &amp;quot;top&amp;quot;;&lt;br /&gt;
      position = &amp;quot;1&amp;quot;;&lt;br /&gt;
      visible = &amp;quot;always&amp;quot;;&lt;br /&gt;
      items = {&lt;br /&gt;
        topicbarstart = { priority = &amp;quot;100&amp;quot;; };&lt;br /&gt;
        topic = { };&lt;br /&gt;
        topic_empty = { };&lt;br /&gt;
        topicbarend = { priority = &amp;quot;100&amp;quot;; alignment = &amp;quot;right&amp;quot;; };&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
    awl_0 = {&lt;br /&gt;
      items = {&lt;br /&gt;
        barstart = { priority = &amp;quot;100&amp;quot;; };&lt;br /&gt;
        awl_0 = { };&lt;br /&gt;
        barend = { priority = &amp;quot;100&amp;quot;; alignment = &amp;quot;right&amp;quot;; };&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
  };&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 settings = {&lt;br /&gt;
  core = {&lt;br /&gt;
    real_name = &amp;quot;Arthur Darcet&amp;quot;;&lt;br /&gt;
    user_name = &amp;quot;Arthur&amp;quot;;&lt;br /&gt;
    nick = &amp;quot;Arthur&amp;quot;;&lt;br /&gt;
    recode = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    recode_autodetect_utf8 = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    recode_out_default_charset = &amp;quot;UTF-8&amp;quot;;&lt;br /&gt;
    recode_fallback = &amp;quot;CP1252&amp;quot;;&lt;br /&gt;
    server_reconnect_time = &amp;quot;10&amp;quot;;&lt;br /&gt;
    quit_message = &amp;quot;&amp;quot;;&lt;br /&gt;
    timestamp_format = &amp;quot;%d|%H:%M:%S&amp;quot;;&lt;br /&gt;
    #    use_proxy = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    #    proxy_address = &amp;quot;129.104.247.2&amp;quot;;&lt;br /&gt;
    #    proxy_port = &amp;quot;8080&amp;quot;;&lt;br /&gt;
    #    proxy_string = &amp;quot;CONNECT %s:%d HTTP/1.0\012\012&amp;quot;;&lt;br /&gt;
  };&lt;br /&gt;
  &amp;quot;fe-common/core&amp;quot; = {&lt;br /&gt;
    autolog = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    autolog_path = &amp;quot;~/irclogs/%Y/$tag-$0-%m-%d.log&amp;quot;;&lt;br /&gt;
    term_charset = &amp;quot;utf-8&amp;quot;;&lt;br /&gt;
    timestamps = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    show_nickmode = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    show_nickmode_empty = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    theme = &amp;quot;mytheme&amp;quot;;&lt;br /&gt;
    bell_beeps = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    beep_msg_level = &amp;quot;HILIGHT&amp;quot;;&lt;br /&gt;
    beep_when_window_active = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    beep_when_away = &amp;quot;yes&amp;quot;;&lt;br /&gt;
    completion_char = &amp;quot; :&amp;quot;;&lt;br /&gt;
  };&lt;br /&gt;
  &amp;quot;irc/core&amp;quot; = { lag_max_before_disconnect = &amp;quot;300&amp;quot;; knockout_time = &amp;quot;5&amp;quot;; };&lt;br /&gt;
  &amp;quot;fe-text&amp;quot; = { indent = &amp;quot;8&amp;quot;; actlist_sort = &amp;quot;refnum&amp;quot;; };&lt;br /&gt;
  &amp;quot;perl/core/scripts&amp;quot; = {&lt;br /&gt;
    autorejoin_channels = &amp;quot;#root-br #br2k9 #br #x #news-br #frankiz #web-br #br-actif #federez #ascii #archlinux #archlinux-fr&amp;quot;;&lt;br /&gt;
    nicklist_automode = &amp;quot;screen&amp;quot;;&lt;br /&gt;
    awl_display_nokey_active = &amp;quot;$Q:$H$C$S&amp;quot;;&lt;br /&gt;
    awl_display_key = &amp;quot;$Q|$H$C$S&amp;quot;;&lt;br /&gt;
    awl_display_key_active = &amp;quot;$Q:$H$C$S&amp;quot;;&lt;br /&gt;
    awl_display_nokey = &amp;quot;$Q|$H$C$S&amp;quot;;&lt;br /&gt;
  };&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 hilights = (&lt;br /&gt;
  #  { text = &amp;quot;root&amp;quot;; nick = &amp;quot;yes&amp;quot;; word = &amp;quot;yes&amp;quot;; fullword = &amp;quot;no&amp;quot;; },&lt;br /&gt;
  #  {&lt;br /&gt;
  #    text = &amp;quot;CRIT&amp;quot;;&lt;br /&gt;
  #    color = &amp;quot;%Y&amp;quot;;&lt;br /&gt;
  #    nick = &amp;quot;no&amp;quot;;&lt;br /&gt;
  #    word = &amp;quot;yes&amp;quot;;&lt;br /&gt;
  #    fullword = &amp;quot;yes&amp;quot;;&lt;br /&gt;
  #    channels = ( &amp;quot;#root-br&amp;quot; );&lt;br /&gt;
  #  },&lt;br /&gt;
  #  { text = &amp;quot;magnan&amp;quot;; nick = &amp;quot;yes&amp;quot;; word = &amp;quot;yes&amp;quot;; fullword = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { text = &amp;quot;root&amp;quot;; nick = &amp;quot;yes&amp;quot;; word = &amp;quot;yes&amp;quot;; fullword = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { text = &amp;quot;2k9&amp;quot;; nick = &amp;quot;yes&amp;quot;; word = &amp;quot;yes&amp;quot;; fullword = &amp;quot;yes&amp;quot;; },&lt;br /&gt;
  { text = &amp;quot;2009&amp;quot;; nick = &amp;quot;yes&amp;quot;; word = &amp;quot;yes&amp;quot;; fullword = &amp;quot;yes&amp;quot;; }&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 keyboard = (&lt;br /&gt;
  { key = &amp;quot;meta-a&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;2&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-z&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;3&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-e&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;4&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-r&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;5&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-t&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;6&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-y&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;7&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-u&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;8&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-i&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;9&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-o&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;10&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-p&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;11&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-q&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;12&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-s&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;13&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-d&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;14&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-f&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;15&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-g&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;16&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-h&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;17&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-j&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;18&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-k&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;19&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-l&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-m&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;21&amp;quot;; }&lt;br /&gt;
  { key = &amp;quot;meta-w&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-x&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-c&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-v&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-b&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-n&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-A&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-Z&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-E&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-R&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-T&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-Y&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-U&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-I&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-O&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-P&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-Q&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-S&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-D&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-F&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-G&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-H&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-J&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-K&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-L&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-M&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-N&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-O&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-P&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-W&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-X&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-C&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-V&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-B&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; },&lt;br /&gt;
  { key = &amp;quot;meta-N&amp;quot;; id = &amp;quot;change_window&amp;quot;; data = &amp;quot;20&amp;quot;; }&lt;br /&gt;
 );&lt;br /&gt;
 &lt;br /&gt;
 logs = { };&lt;br /&gt;
 ignores = ( );&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:IRC]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Serveur_IRC&amp;diff=7814</id>
		<title>Serveur IRC</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Serveur_IRC&amp;diff=7814"/>
		<updated>2013-04-13T14:21:41Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : liens inutiles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu services}}&lt;br /&gt;
{{menu IRC}}&lt;br /&gt;
&lt;br /&gt;
IRC, ou Internet Relay Chat, est un protocole de dialogue qui permet de se connecter à un réseau de serveurs IRC sur lequel peuvent être connectées de nombreuses personnes (comme Undernet, EFNet ou Rezosup \o/).&lt;br /&gt;
&lt;br /&gt;
Une fois connecté au réseau grâce à ce client, tu pourras rejoindre (ou créer) un salon de discussion, appelé channel, sur lequel peuvent se connecter a priori toutes les personnes connectées au serveur. Cela fait d'IRC un moyen bien pratique pour permettre aux communautés de se retrouver en direct, et en particulier à l'X !&lt;br /&gt;
&lt;br /&gt;
L'école dispose d'un serveur relié au réseau Rezosup, regroupant de nombreuses écoles et universités francaises. Il y a donc un channel #x, un channel #polytech, et même certains channels de binets sur ce réseau.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
* serveur : '''irc''' ou '''ircserver''' (irc.eleves.polytechnique.fr/ircsever.eleves.polytechnique.fr)&lt;br /&gt;
* port 6667 : connexion non sécurisée&lt;br /&gt;
* port 6767 : connexion SSL&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Services]]&lt;br /&gt;
[[Catégorie:IRC]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Aide_utilisateur_IRC&amp;diff=7807</id>
		<title>Aide utilisateur IRC</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Aide_utilisateur_IRC&amp;diff=7807"/>
		<updated>2013-04-10T12:20:40Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : quelques lignes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu IRC}}&lt;br /&gt;
&lt;br /&gt;
EN COURS D'ECRITURE (02/04/13)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette page vous explique comment configurer IRC lorsque vous devenez un utilisateur plus régulier, et voulez protéger votre pseudo, créer un canal sous votre nom, acquérir des droits, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Préliminaires ==&lt;br /&gt;
&lt;br /&gt;
Pour parler aux serveurs qui gèrent les identités et les chans (respectivement nickserv et chanserv), il faut ouvrir un nouvelle conversation avec la commande '''/query nom_du_serveur'''. Plus rapide : '''/msg nom_du_serveur commande''' qui ouvre quand même une fenêtre, ou '''/^msg nom_du_serveur commande''' qui n'ouvre pas de fenêtre mais ne donne pas de réponse. Tu peux pas exemple demander de l'aide à nickserv en tapant la commande '''/msg nickserv help'''.&lt;br /&gt;
&lt;br /&gt;
Pour fermer la fenêtre lorsqu'elle n'est plus utile, tape &amp;quot;/wc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Créer un compte utilisateur ==&lt;br /&gt;
C'est le premier pas vers l'utilisation des services.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'enregistrement, connecte toi sous ce pseudo (ou tape /nick pseudo pour en changer).&lt;br /&gt;
&lt;br /&gt;
Puis envoie à nickserv la commande '''register *password* *email*'''&lt;br /&gt;
&lt;br /&gt;
Tu devrais recevoir un mail rapidement avec la dernière commande à rentrer pour valider l'enregistrement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utiliser son compte ==&lt;br /&gt;
&lt;br /&gt;
Tu dois ensuite envoyer à nickserv la commande '''identify mot_de_passe''' pour être reconnu. Ensuite tu peux par exemple donner la commande '''invite #br-securite''' à chanserv, puis taper '''/join #br-securite''' si tu en a les droits pour joindre le chan #br-securite.&lt;br /&gt;
&lt;br /&gt;
== Gérer un canal ==&lt;br /&gt;
=== Fonder un canal ===&lt;br /&gt;
&lt;br /&gt;
=== Gérer les droits d'un canal ===&lt;br /&gt;
&lt;br /&gt;
=== Configurer les options d'un canal ===&lt;br /&gt;
&lt;br /&gt;
=== Commandes utiles ===&lt;br /&gt;
&lt;br /&gt;
== Besoin d'aide ? ==&lt;br /&gt;
Une question, un problème ? Connecte toi sur #br et tu trouveras quelqu'un pour y répondre.&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:IRC]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Git&amp;diff=7805</id>
		<title>Git</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Git&amp;diff=7805"/>
		<updated>2013-04-07T21:31:40Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : ajout d'un tuto git&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menu Root Toolbox}}&lt;br /&gt;
&lt;br /&gt;
Git est un [[VCS|système de contrôle de version]]. Assez proche de [[SVN]] par certains côtés, il présente néanmoins un grand nombre de différences.&lt;br /&gt;
&lt;br /&gt;
Si tu découvre git, ou que tu n'est pas encore très à l'aise avec, consulte [http://www.vogella.com/articles/Git/article.html ce tutoriel très bien expliqué et très complet]. Pour un aide mémoire, va voir [http://giudoku.sourceforge.net/media/GitHandbook.pdf ici] ou  [http://ndpsoftware.com/git-cheatsheet.html ici].&lt;br /&gt;
&lt;br /&gt;
== Dépôts ==&lt;br /&gt;
&lt;br /&gt;
Alors que [[CVS]] et [[SVN]] sont des systèmes de versionnement centralisés (i.e un serveur contient le dépôt, et chaque utilisateur effectue un ''checkout'' depuis ce dépôt), Git est complètement décentralisé. Cela signifie que chaque contributeur a sa propre copie locale de tout l'historique d'un projet. Si aujourd'hui vous considérez que l'espace disque sur votre ordinateur est un problème, allez faire un tour, partez admirer les merveilles de la technologies qui nous entoure, et revenez demain. Sur cette page, tous les examples sont tirés du Git de [[Frankiz]], mais voici d'autres dépôts bien utiles :&lt;br /&gt;
* [http://www.github.com/ GitHub]&lt;br /&gt;
* [http://git.frankiz.net/ Frankiz]&lt;br /&gt;
* [http://git.polytechnique.org/ Polytechnique.org]&lt;br /&gt;
&lt;br /&gt;
== Récupérer le code d'un projet existant ==&lt;br /&gt;
&lt;br /&gt;
Pour télécharger un projet existant, il y a deux possibilités : avec un compte de développeur ou sans compte. Avec un compte SSH simple, il suffit d'exécuter la commande suivante :&lt;br /&gt;
 git clone mybeautifulname@git.frankiz.net:/hosting/git/frankiz&lt;br /&gt;
Sans compte, certains projets sont téléchargeables avec le protocole HTTP, mais vous ne pourrez pas uploader vos modifications.&lt;br /&gt;
 git clone http://git.frankiz.net/frankiz&lt;br /&gt;
&lt;br /&gt;
Cela crée un '''clone''' du dépôt d'origine (i.e une copie conforme), qui peut d'ailleurs servir de backup si le dépôt d'origine était perdu. Notre clone contient tout l'historique du dépôt depuis sa création, toutes les branches, etc. Cette première opération est très souple. On peut cloner des dépôt via SSH, HTTP, GIT, ou même en local le dépôt d'un autre utilisateur...&lt;br /&gt;
&lt;br /&gt;
Par exemple la commande suivante clone dans le dossier ''platal'' la branche ''core/master'' d'une version de Plat/al potientiellement modifiée par le vice-prez 2010 :&lt;br /&gt;
 git clone /home/2010/fishilico/dev/platal/.git platal -b core/master&lt;br /&gt;
&lt;br /&gt;
== Accéder à l'aide ==&lt;br /&gt;
Avant toute chose, il est essentiel de savoir où trouver de l'aide, d'autant plus que l'aide de Git est très bien faite.&lt;br /&gt;
* Sur internet, il y a le wikiBR, les pages de manuel ([http://linux.die.net/man/1/git sur Linux Die] par exemple) et le [http://book.git-scm.com/ Git Book]&lt;br /&gt;
* En terminal, ''git help'' pour une liste des commandes, ''git help cmd'' ou ''git cmd --help'' pour l'aide complète de la commande ''cmd'', ou encore simplement ''git cmd -h'' pour une aide courte sur la commande ''cmd''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quel est l'état de ma copie de travail ? ==&lt;br /&gt;
Ceci est la question que vous devez vous posez avant de reprendre après une pause votre travail sur un projet versionné. Il peut y avoir eu des changements sur le projet entre temps, des patchs mal faits en production, ... Pour cela, il y a trois commandes essentielles :&lt;br /&gt;
* Pour vérifier que le dépôt est correct, ''git status'' doit dire cela :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 nothing to commit (working directory clean)&lt;br /&gt;
* En cours de travail, la réponse ressemble plus à :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Changes not staged for commit:&lt;br /&gt;
 #   (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to update what will be committed)&lt;br /&gt;
 #   (use &amp;quot;git checkout -- &amp;lt;file&amp;gt;...&amp;quot; to discard changes in working directory)&lt;br /&gt;
 #&lt;br /&gt;
 #	modified:   un-fichier-random.blah&lt;br /&gt;
 #&lt;br /&gt;
 # Untracked files:&lt;br /&gt;
 #   (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to include in what will be committed)&lt;br /&gt;
 #&lt;br /&gt;
 #	un-fichier-chombier-ajouté.42&lt;br /&gt;
 no changes added to commit (use &amp;quot;git add&amp;quot; and/or &amp;quot;git commit -a&amp;quot;)&lt;br /&gt;
* Lire l'historique est bien pour savoir quel est le dernier commit&lt;br /&gt;
 git log&lt;br /&gt;
 commit 2a424aae1e746fb5f33de3b3bc3e8a31ee25c684&lt;br /&gt;
 Author: Nicolas Iooss &amp;lt;fishilico@eleves.polytechnique.fr&amp;gt;&lt;br /&gt;
 Date:   Fri Mar 9 00:27:35 2012 +0100&lt;br /&gt;
* Voir les différences entre la version sur le dépôt distant et celle de travail&lt;br /&gt;
 git diff&lt;br /&gt;
&lt;br /&gt;
De plus, après avoir téléchargé les derniers commits avec ''git fetch'', il est possible d'obtenir le message suivant :&lt;br /&gt;
 git status&lt;br /&gt;
 # On branch master&lt;br /&gt;
 # Your branch is behind 'origin/master' by 42 commits, and can be fast-forwarded.&lt;br /&gt;
Cela signifie que la copie locale a 42 commits de retard sur le dépôt distant, mais qu'un ''git rebase origin/master'' suffit pour mettre à jour la copie locale.&lt;br /&gt;
&lt;br /&gt;
== Réinitialiser le dépôt ==&lt;br /&gt;
Pour restaurer un fichier, il suffit de le ''checkout'' à partir de l'index. En français, cela signifie que lorsque vous faites une modification sur un fichier, vous pouvez effacer les modifications et revenir la dernière version enregistrée dans l'index Git avec la commande :&lt;br /&gt;
 git checkout -- chemin/vers/mon/fichier.blih&lt;br /&gt;
Pour réinitialiser l'index dans l'état indiqué par une branche (comme ''master'' par exemple) sans modifier les fichier, il suffit d'écrire :&lt;br /&gt;
 git reset master&lt;br /&gt;
Si cela ne marche pas car des fichiers seront modifiés ou effacés, on peut forcer la main à Git, mais alors il faut être prêt à subir les conséqences que cela implique (perte des modifications non commitées)&lt;br /&gt;
 git reset --hard master&lt;br /&gt;
&lt;br /&gt;
== Mettre à jour la copie de travail ==&lt;br /&gt;
=== git fetch &amp;amp;&amp;amp; git rebase origin/master ===&lt;br /&gt;
Dans le cas général, vous travaillez sur la branche ''master'' et vous synchronisez votre projet sur un seul serveur. Si votre cas est plus compliqué, vous devez être suffisamment compétent pour vous débrouillez par vous-même. On disait donc... dans le cas simple, Git stocke en interne deux branches : ''master'' et ''origin/master''. Sur Frankiz, c'est un peu plus compliqué car il y a une branche de production, mais les développeurs n'utilisent que master.&lt;br /&gt;
 git branch -a&lt;br /&gt;
 * master&lt;br /&gt;
   remotes/origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
   remotes/origin/f579e1971a66623b2948bf0e20c2e23481022b41&lt;br /&gt;
   remotes/origin/fkz2&lt;br /&gt;
   remotes/origin/kangz-h4ck3s&lt;br /&gt;
   remotes/origin/master&lt;br /&gt;
   remotes/origin/prod&lt;br /&gt;
&lt;br /&gt;
Pour mettre à jour sa copie de travail, il faut donc commencer par mettre à jour les branches distantes, avec '''au choix''' l'une des commandes suivantes&lt;br /&gt;
 git fetch&lt;br /&gt;
 git fetch origin&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut appliquer les éventuelles modifications locales à la suite de celles effectuées sur le dépôt, c'est le '''rebase'''.&lt;br /&gt;
 git rebase origin/master&lt;br /&gt;
Git essaiera alors d'appliquer les commits locaux successivement, en indiquant chaque fois qu'il y a un problème (conflit ou fichier supprimé). En cas de problème, il faut&lt;br /&gt;
# Résoudre le problème (les fichiers avec des conflits apparaîssent comme ''Changed but not updated'' dans ''git status'')&lt;br /&gt;
# Ajouter les fichiers (''git add'')&lt;br /&gt;
# Indiquer à git de continuer : ''git rebase --continue''&lt;br /&gt;
&lt;br /&gt;
Remarque : git pull --rebase est un raccourci pour l'ensemble git fetch &amp;amp;&amp;amp; git rebase. Attention cependant lors du travail sur plusieurs branches.&lt;br /&gt;
&lt;br /&gt;
Ceci permet de transformer l'état suivant (les ''O'' sont les commits, ''A'' le moment où les deux versions ont commencé à diverger, ''B'' la version du dépôt, ''E'' la version locale, ''C'' et ''D'' des commits locaux&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /&lt;br /&gt;
 -O--A--O--B&lt;br /&gt;
&lt;br /&gt;
En l'état plus propre :&lt;br /&gt;
 -O--A--O--B--C'--D'--E'&lt;br /&gt;
&lt;br /&gt;
Avec C, D et E convertis en C', D' et E' : ils ont été modifiés pour être des modifications relatives à B au lieu de A.&lt;br /&gt;
&lt;br /&gt;
=== Pourquoi il ne faut JAMAIS utiliser git pull ===&lt;br /&gt;
Certains développeurs utilisent la commande ''git pull'' pour mettre à jour leur dépôt. Cette pratique est justifiée lorsque la copie de travail était propre (sans commit en attente de push entre autres), mais sinon, cela peut avoir des conséquences très graves et sales. En effet, ''git pull' est assimilé à la succession de commandes suivantes :&lt;br /&gt;
 git fetch origin &amp;amp;&amp;amp; git merge origin/master&lt;br /&gt;
Le problème est le merge. En reprenant les schémas précédents, cela transforme l'état suivant :&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /&lt;br /&gt;
 -O--A--O--B&lt;br /&gt;
&lt;br /&gt;
en :&lt;br /&gt;
&lt;br /&gt;
       -C--D--E&lt;br /&gt;
      /        \&lt;br /&gt;
 -O--A--O--B----M&lt;br /&gt;
&lt;br /&gt;
où M est le commit ''de fusion de branches''. '''Cela est très moche et à éviter absolument'''. Si vous vous retrouvez dans cette suituation (pour vérifier : ''git log''), vous pouvez toujours tenter un ''git rebase origin/master'' qui peut fonctionner si le ''merge'' était trivial (sans conflit). Sinon, un ''git reset --hard origin/master'' s'impose pour assurer votre salut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sauvegarder des modifications locales (git stash) ===&lt;br /&gt;
Avant de faire un merge particulièrement délicat, ou si l'on doit résoudre un bug alors que l'on a pas mal de modifications non commitées en cours, il est parfois utile de sauvegarder l'état courant de la copie de travail.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut utiliser '''avant''' un changement (avec ''git rebase'' par exemple) :&lt;br /&gt;
 git stash&lt;br /&gt;
Une fois les modifications effectuées, on peut restorer la copie locale à l'état sauvegardé avec :&lt;br /&gt;
 git stash pop&lt;br /&gt;
&lt;br /&gt;
== Effectuer un commit ==&lt;br /&gt;
Un '''commit''' est un ensemble de fichiers modifiés. Cela permet plus de cohérence dans le suivi des versions. Par exemple, si l'ajout d'une fonctionnalité sur Frankiz modifie les fichiers ''blah'', ''blih'' et ''bloh'', le ''commit'' regroupe les modifications de ces trois fichiers, et associe à cette modification une date et un auteur.&lt;br /&gt;
&lt;br /&gt;
Pour effectuer un commit, il faut :&lt;br /&gt;
* Vérifier l'état de la copie de travail, pour ne commiter que ce qui est nécessaire&lt;br /&gt;
 git status&lt;br /&gt;
 git diff&lt;br /&gt;
* Indiquer à Git quels fichiers feront partie du commit ; ceci permet de ne committer que les modifications de quelques fichiers&lt;br /&gt;
 git add path/to/blih path/to/blah path/to/bloh&lt;br /&gt;
* Vérifier que l'on a ajouté les fichiers que l'on voulait :&lt;br /&gt;
 git status&lt;br /&gt;
* Faire le commit (le ''-s'' ajoute une ligne ''Signed of by'' dans le message, pour pouvoir retrouver plus efficacement l'auteur réel du commit)&lt;br /&gt;
 git commit -s&lt;br /&gt;
* Cette commande ouvre un éditeur (vi, nano ou emacs selon la configuration de la variable EDITOR). Il faut alors entrer un bref descriptif du commit. '''Pour certains projets (dont Frankiz), les conventions de codage obligent les développeurs à écrire les descriptions en anglais.''' Il est un bon usage de s'adapter en conséquence, car un commit peut être refusé en production s'il est mal fait.&lt;br /&gt;
* Mettre à jour la copie locale avec le dépôt distant (cela décale le nouveau commit à la fin). '''IL NE FAUT SURTOUT PAS FAIRE DE git pull OU DE git merge ICI'''&lt;br /&gt;
 git fetch&lt;br /&gt;
 git rebase origin/master&lt;br /&gt;
* Transmettre les commits au dépôt d'origine&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
La dernière commande provient du fait que git n'est pas centralisé : il n'envoie pas les modifications locales au dépôt parent spontanément.&lt;br /&gt;
&lt;br /&gt;
Ceci permet de faire quelques modifications locales puis de n'envoyer cela au reste des développeurs que lorsque les modifications sont stables et complètes, par exemple.&lt;br /&gt;
&lt;br /&gt;
== Gérer les branches ==&lt;br /&gt;
On peut voir la liste des branches accessibles avec :&lt;br /&gt;
 git branch -a&lt;br /&gt;
* La ligne avec une étoile est la branche courante&lt;br /&gt;
* Les lignes blanches sont les branches ''locales'' (elles suivent généralement une branche distante)&lt;br /&gt;
* Les lignes rouges (si les couleurs sont activées) sont les branches distantes.&lt;br /&gt;
&lt;br /&gt;
Pour récupérer une autre branche, il faut d'abord l'ajouter localement :&lt;br /&gt;
 git checkout -b NomLocal origin/NomDistant&lt;br /&gt;
&lt;br /&gt;
Cela aura également pour effet de basculer sur la branche NomLocal.&lt;br /&gt;
Les modifications que l'on avait effectuées sont bien entendu conservées.&lt;br /&gt;
&lt;br /&gt;
Une fois la branche ajoutée, on peut basculer de branche en branche à l'aide de :&lt;br /&gt;
 git checkout NomLocal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Créer un dépôt ==&lt;br /&gt;
Contrairement à [[SVN]] où il faut installer un serveur subversion, créer un dépôt Git est très rapide : dans le dossier que l'on souhaite versionner, il suffit de taper&lt;br /&gt;
 git init&lt;br /&gt;
Et voilà, le dossier est versionné : on peut donc commencer à faire des modifications, des commits, etc. (bien entendu, on ne peut pas ''pusher'' ses commits, puisqu'il n'y a pas de serveur distant).&lt;br /&gt;
&lt;br /&gt;
Cette particularité rend Git très efficace pour versionner un petit projet, un exercice de TD, etc.&lt;br /&gt;
&lt;br /&gt;
Pour créer un dépôt qui peut être cloné, il faut exécuter les commandes suivantes :&lt;br /&gt;
 git init --bare mon_projet&lt;br /&gt;
 cd mon_projet &amp;amp;&amp;amp; git update-server-info&lt;br /&gt;
&lt;br /&gt;
Enfin, pour configurer un serveur HTTP (gitweb), il ne faut pas oublier de créer un fichier vide '''git-daemon-export-ok''' dans le dossier, afin de permettre le clonage.&lt;br /&gt;
&lt;br /&gt;
== Structure interne ==&lt;br /&gt;
&lt;br /&gt;
Git stocke les commits de manière très particulière : un commit correspond à peu près à une sauvegarde de l'état des fichiers, à un message, et à une référence vers le commit parent.&lt;br /&gt;
Contrairemant à [[SVN]], il n'y a donc pas de notion de numéro de révision : chaque commit est identifié par une chaîne hexadécimale de 40 caractères (par exemple : ''04fd02e59b1bdc430c7a7dcc1ca9f4cbc2b04037'' )&lt;br /&gt;
&lt;br /&gt;
Un ''tag'' est en fait un nom «lisible» donné à un ''commit'' ; une ''branche'' indique également le ''commit'' principal d'une branche.&lt;br /&gt;
&lt;br /&gt;
== Du bon usage de gitignore ==&lt;br /&gt;
Dans un projet, il est inutile de versionner les fichiers temporaires et les fichiers compilés (qu'ils soient binaires ou non). On utilise généralement un Makefile pour créer ces fichiers. Pour éviter de les versionner, il suffit d'utiliser un fichier ''.gitignore'' bien placé. Généralement, chaque projet a un tel fichier dans son dossier principal. Voici par exemple un extrait du gitignore de Frankiz :&lt;br /&gt;
 configs/frankiz.conf&lt;br /&gt;
 htdocs/.htaccess&lt;br /&gt;
 htdocs/data/*&lt;br /&gt;
 htdocs/css/*&lt;br /&gt;
 spool/*&lt;br /&gt;
 upgrade/2.0.0_to_3.0.0/unversionned&lt;br /&gt;
&lt;br /&gt;
== Configuration globale ==&lt;br /&gt;
Si vous avez déjà commitez, vous aurez certainement remarqué qu'il faut utiliser ''git config'' pour configurer vos informations personnelles. Ainsi, les deux premières commandes que tout utilisateur doit taper avant de faire un commit sont :&lt;br /&gt;
 git config --global user.name &amp;quot;Prénom Nom de famille&amp;quot;&lt;br /&gt;
 git config --global user.email &amp;quot;prenom.nom.promo@polytechnique.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ensuite, si vous aimez les couleurs, vous avez envie de taper cette commande :&lt;br /&gt;
 git config --global color.ui auto&lt;br /&gt;
&lt;br /&gt;
Enfin, si vous en avez assez des projets qui ne mettent pas les fichiers temporaires dans le gitignore, vous pouvez configurer un fichier gitignore global. Si votre ''/home/user/.gitignore_global'' ressemble à&lt;br /&gt;
 *~&lt;br /&gt;
 *.swp&lt;br /&gt;
 *.tmp&lt;br /&gt;
il suffit de taper :&lt;br /&gt;
 git config --global core.excludesfile /home/user/.gitignore_global&lt;br /&gt;
&lt;br /&gt;
Tout cela permet de gérer la configuration globale, visible par&lt;br /&gt;
 git config --global -l&lt;br /&gt;
En enlevant ''--global'' dans toutes les commandes précédentes, on configure la copie locale.&lt;br /&gt;
&lt;br /&gt;
=== Exemple de configuration ===&lt;br /&gt;
Voici un exemple de fichier ~/.gitconfig (qui stocke la configuration ''--global'', le même format peut être utilisé dans les fichier ''$REPO/.git/config'' de chaque dépot) :&lt;br /&gt;
 [gc]&lt;br /&gt;
    auto = 1&lt;br /&gt;
 [color]&lt;br /&gt;
    ui = true&lt;br /&gt;
 [color &amp;quot;diff&amp;quot;]&lt;br /&gt;
    whitespace = red reverse&lt;br /&gt;
 [core]&lt;br /&gt;
    whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol&lt;br /&gt;
 [alias]&lt;br /&gt;
    st = status&lt;br /&gt;
    ci = commit&lt;br /&gt;
    br = branch&lt;br /&gt;
    co = checkout&lt;br /&gt;
    df = diff&lt;br /&gt;
    dc = diff --cached&lt;br /&gt;
    lg = log -p&lt;br /&gt;
    lo = log --graph --decorate --pretty=oneline --abbrev-commit -n 10&lt;br /&gt;
    lol = log --graph --decorate --pretty=oneline --abbrev-commit&lt;br /&gt;
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all&lt;br /&gt;
    ls = ls-files&lt;br /&gt;
    # Show files ignored by git:&lt;br /&gt;
    ign = ls-files -o -i --exclude-standard&lt;br /&gt;
    amend = commit --amend -C HEAD&lt;br /&gt;
 [branch]&lt;br /&gt;
    autosetuprebase = always&lt;br /&gt;
&lt;br /&gt;
== Utiliser le proxy de l'X avec Git ==&lt;br /&gt;
Si vous hébergez un projet sur [http://www.github.com GitHub], vous avez envie de dire à Git de se connecter à GitHub en SSH en passant par le proxy de l'X (qui est [http://kuzh.polytechnique.fr:8080 kuzh:8080]). Pour cela, il suffit de configurer le client SSH pour utiliser le proxy à chaque connexion vers github.com. Cela s'effecute par le fichier de configuration suivant dans /home/user/.ssh/config (adaptez avec votre dossier personnel)&lt;br /&gt;
 Host github.com&lt;br /&gt;
     ProxyCommand socat - PROXY:kuzh.polytechnique.fr:%h:%p,proxyport=8080&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez utiliser le protocole git://, il faut utiliser socat, et créer un exécutable avec dedans :&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 exec socat STDIO PROXY:129.104.247.2:$1:$2&lt;br /&gt;
&lt;br /&gt;
Puis mettre cet executable dans la variable core.gitproxy :&lt;br /&gt;
 git config --global core.gitproxy NOM_DU_FICHIER&lt;br /&gt;
&lt;br /&gt;
N'oubliez pas d'enlever cette variable pour utiliser git en-dehors de l'X.&lt;br /&gt;
&lt;br /&gt;
'''Si vous souhaitez uniquement cloner un dépôt GitHub''' dont vous n'êtes pas contributeur, il suffit d'utiliser le lien HTTPS en ligne de commande, en précisant le proxy.&lt;br /&gt;
 export https_proxy=http://kuzh.polytechnique.fr:8080&lt;br /&gt;
 git clone https://github.com/BinetReseau/frankiz.git&lt;br /&gt;
&lt;br /&gt;
Finalement, si vous ne voulez pas vous connecter par ssh, mais vous souhaitez travailler normalement avec un depôt à l'extérieur de l'X, configurez git par le biais de ces commandes:&lt;br /&gt;
 git config --global http.proxy http://kuzh.polytechnique.fr:8080&lt;br /&gt;
 git config --global https.proxy http://kuzh.polytechnique.fr:8080&lt;br /&gt;
&lt;br /&gt;
Cela va effectuer les modifications correspondantes sur le fichier ~/.gitconfig. '''N'oubliez pas de les enlever dès que vous n'êtes plus connectés au réseau de l'école, avec''':&lt;br /&gt;
 git config --global --unset http.proxy http://kuzh.polytechnique.fr:8080 &lt;br /&gt;
&lt;br /&gt;
= Pour Windows =&lt;br /&gt;
&lt;br /&gt;
Pour utiliser Git sur Windows, on peut par exemple télécharger MSys Git : [http://msysgit.github.com/ http://msysgit.github.com/].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Root]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7797</id>
		<title>Modèle:Réunions2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7797"/>
		<updated>2013-03-27T16:21:08Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : ajout 2 réunions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Réunion:2012-03-27_Réunion_BCX|Réunion sur les impressions à la BCX]]&lt;br /&gt;
* [[Réunion:2012-03-27_Réunion_GEIDE|Réunion sur le cloud storage]]&lt;br /&gt;
* [[Réunion:2012-03-19_Réunion_CU|Réunion du Comité Utilisateur du 19 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-03-14_Réunion_DSI|Réunion DSI du 14 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-02-14_Réunion_DSI|Réunion DSI du 14 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-13_Assemblée_Générale|Assemblée Générale du 13 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-12_Réunion_SOI|Réunion SOI du 12 février 2013]]&lt;br /&gt;
* [[Réunion:2013-01-17_Réunion_DSI|Réunion DSI du 17 janvier 2013]]&lt;br /&gt;
* [[Réunion:2013-01-16_1ere_reunion_du_BR|1ère Réunion BR 2011 du 16 janvier 2013]]&lt;br /&gt;
* [[Réunion:2012-12-20_Kes-BR| Réunion avec la Kès du 20 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-12-19_Magnan_BR-ENSTA|Magnan-BR du 19 décembre 2012, avec l'ENSTA]]&lt;br /&gt;
* [[Réunion:2012-12-04_Réunion_CD|Réunion du Comité Directeur du 04 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-11-23_Réunion_CU|Réunion du Comité Utilisateur du 23 novembre 2012]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Fichier:InfoBR_2k12.pdf.zip&amp;diff=7795</id>
		<title>Fichier:InfoBR 2k12.pdf.zip</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Fichier:InfoBR_2k12.pdf.zip&amp;diff=7795"/>
		<updated>2013-03-21T13:32:42Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Fichier:Couverture_InfoBR_2012.jpg&amp;diff=7794</id>
		<title>Fichier:Couverture InfoBR 2012.jpg</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Fichier:Couverture_InfoBR_2012.jpg&amp;diff=7794"/>
		<updated>2013-03-21T13:30:36Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
	<entry>
		<id>https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7789</id>
		<title>Modèle:Réunions2011</title>
		<link rel="alternate" type="text/html" href="https://wikibr.binets.fr/index.php?title=Mod%C3%A8le:R%C3%A9unions2011&amp;diff=7789"/>
		<updated>2013-03-20T17:42:25Z</updated>

		<summary type="html">&lt;p&gt;Michel.blancard : CU de mars 2013&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Réunion:2012-03-19_Réunion_CU|Réunion du Comité Utilisateur du 19 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-03-14_Réunion_DSI|Réunion DSI du 14 mars 2013]]&lt;br /&gt;
* [[Réunion:2013-02-14_Réunion_DSI|Réunion DSI du 14 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-13_Assemblée_Générale|Assemblée Générale du 13 février 2013]]&lt;br /&gt;
* [[Réunion:2013-02-12_Réunion_SOI|Réunion SOI du 12 février 2013]]&lt;br /&gt;
* [[Réunion:2013-01-17_Réunion_DSI|Réunion DSI du 17 janvier 2013]]&lt;br /&gt;
* [[Réunion:2013-01-16_1ere_reunion_du_BR|1ère Réunion BR 2011 du 16 janvier 2013]]&lt;br /&gt;
* [[Réunion:2012-12-20_Kes-BR| Réunion avec la Kès du 20 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-12-19_Magnan_BR-ENSTA|Magnan-BR du 19 décembre 2012, avec l'ENSTA]]&lt;br /&gt;
* [[Réunion:2012-12-04_Réunion_CD|Réunion du Comité Directeur du 04 décembre 2012]]&lt;br /&gt;
* [[Réunion:2012-11-23_Réunion_CU|Réunion du Comité Utilisateur du 23 novembre 2012]]&lt;/div&gt;</summary>
		<author><name>Michel.blancard</name></author>
	</entry>
</feed>