vendredi 27 novembre 2009

Lancer plusieurs firefox avec plusieurs profils sous debian

Avant la version 3.5.5, il me semble, lorsque je tappais les commandes suivantes :

iceweasel -P profil1
iceweasel -P profil2

J'avais deux firefox (et oui iceweasel est le petit nom de firefox sous debian) avec deux profils différents. Depuis cette version, la deuxième commande provoque l'ouverture d'une nouvelle fenêtre mais avec le premier profil. Cette régression est très pénible. Heureusement, il y a une parade : il suffit d'exécuter chaque commande en ajoutant le paramètre -no-remote :

iceweasel -P profil1 -no-remote
iceweasel -P profil2 -no-remote

samedi 28 février 2009

Mettre en place un dépôt central git

Cela peut sembler quelque peu paradoxal étant donné le mode distribué et décentralisé de ce gestionnaire de version qu'est git mais on peut vouloir utiliser git un peu comme subversion et avoir un dépôt qui servirait de dépôt "officiel". Pour ce faire nous allons utiliser gitosis qui va énormément nous faciliter la vie.

Lire la suite...

jeudi 17 avril 2008

Livrer du html au lieu du xhtml avec symfony

Je n'ai encore fait aucun site en XHTML pour diverses raisons : on doit servir le XHTML avec le type mime application/xhtml+xml. Mais le navigateur au grand E bleu ne gère tout simplement pas ce type mime. Et livrer le XHTML avec le type mime text/html revient à faire du mauvais HTML. Voilà pour la petite intro.

Lorsqu'on utilise un CMS, ou un framework, on se demande si celui-là va respecter notre façon de coder. J'ai adopté symfony et j'ai découvert avec joie que je peux continuer à faire du HTML!

Lire la suite...

mardi 25 mars 2008

Mettre à jour le contenu d'un package debian

Récemment, avec le passage en version 22.1 de mon éditeur favori, j'ai eu un soucis avec le mode php qui permet notament la mise en valeur du code par la coloration syntaxique de celui-ci. La version du mode que j'utilisais était vieille comme mes robes comme dirait ma grand-mère!

Lire la suite...

Dimanche 16 mars 2008

Emmener son code en voyage

Lorsque je développe sur un projet, j'utilise subversion et je fais souvent des "commit" pour éviter de garder dans mon répertoire de travail du code modifié et non propagé sur le serveur. Tout va bien lorsqu'on est connecté au serveur central mais si on est dans le train, à la campagne, dans un avion, ou dans les toilettes, cela devient plus problématique.

Lire la suite...

Dimanche 16 décembre 2007

Mise à jour de trac

Suite au passage à la version 0.10.3 de trac, je me suis retrouvé avec une erreur fort peu sympathique : (file is encrypted or is not a database). Je n'ai pas tout compris et la lecture des logs d'apache ne m'a tellement aidé non plus ! Mais ...

Lire la suite...

mercredi 18 avril 2007

Récupérer un fichier effacé

Le but du "jeu" est de récupérer un fichier sauvegardé dans subversion - que l'on appellera par exemple mon-fichier.php - , que l'on a effacé à une révision donnée. Ce n'est pas aussi simple qu'il n'y parait mais ça reste très abordable. Le plus compliqué est de retrouver à quel moment où il a été éffacé. Pour ce faire on utilise la commande log en mode verbeux: (à coup de grep au besoin.
svn log -v

On se retrouve avec une révision N où le fichier a été supprimé. Donc à la révision précédente, N-1, le fichier était présent. C'est ce fichier que l'on veut récupérer. Il suffit alors de faire:
svn -rN-1 copy http://localhost/svn/PROJET/path/2/file/mon-fichier.php path/2/file/mon-fichier.php

samedi 10 juin 2006

Optimisation de la configuration de trac

trac est un outil formidable pour gérer un projet mais on a l'impression que l'on se complique la vie lorsqu'on veut gérer plusieurs projets sur le même serveur. Avec le nombre de projets augmentant cela devient très rapidement rébarbatif mais heureusement il y a le mod python d'apache pour trac!

Lire la suite...

samedi 29 avril 2006

Gestion de plusieurs projets avec trac

Pour ajouter un projet dans trac, voici la marche à suivre:

  1. trac-admin /path/to/projetenv initenv (répertoire où sont placés les pages du wiki entre autre)

    Il faut ensuite choisir un nom pour le projet ainsi que le chemin vers le dépôt subversion

    Exemple: trac-admin /var/trac/projets/essai (le dépôt subverison correspondant est: /home/nicolas/projets/essai)

  2. Modifier la conf d'apache

    Alias /trac /usr/share/trac/htdocs/
    
    AliasMatch /projets/(projet1|projet2|projet3|projet4)(/?.*) /var/trac/projets/$1/trac.cgi$2
    
    <DirectoryMatch "/var/trac/projets/projet1/trac.cgi">
            SetEnv TRAC_ENV "/var/trac/projets/projet1"
            AllowOverride None
            Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
            AddHandler cgi-script .cgi
            Order allow,deny
            Allow from all
    </DirectoryMatch>
    
    <DirectoryMatch "/var/trac/projets/projet2/trac.cgi">
            SetEnv TRAC_ENV "/var/trac/projets/projet2"
            AllowOverride None
            Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
            AddHandler cgi-script .cgi
            Order allow,deny
            Allow from all
    </DirectoryMatch>
    
    <DirectoryMatch "/var/trac/projets/projet3/trac.cgi">
            SetEnv TRAC_ENV "/var/trac/projets/projet3"
            AllowOverride None
            Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
            AddHandler cgi-script .cgi
            Order allow,deny
            Allow from all
    </DirectoryMatch>
    
    <DirectoryMatch "/var/trac/projets/projet4/trac.cgi">
            SetEnv TRAC_ENV "/var/trac/projets/projet4"
            AllowOverride None
            Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
            AddHandler cgi-script .cgi
            Order allow,deny
            Allow from all
    </DirectoryMatch>
    

La configuration d'apache n'est pas optimale. On devrait pouvoir l'améliorer en factorisant les différents DirectoryMatch. De plus on utilise les mêmes fichiers de mots de passe pour tous les projets; on devrait pouvoir les séparer.

vendredi 24 mars 2006

Revenir à une version antérieure avec subversion

Cela fait un moment que je travaille sur le même projet en faisant des branches, des tags... Je fais des "commit" réguliers. Et tout à coup, arrivant à la révision 2347 je me suis apperçu que j'avais introduit, par mégarde, un nouveau bug qui n'était pas présent à la révision 2346.

La question qui est sur toutes les lèvres: comment revenir facilement à la révision précédente ? Et bien rien de plus simple, il suffit de taper la commande suivante:

svn merge -r2347:2346 URL .

Deux remarques:

  • c'est bien la commande merge qu'il faut utiliser; c'est clairement écrit dans la documentation.
  • je ne me suis pas trompé; les numéros de révisions sont dans l'ordre décroissant contrairement à un merge "classique". Mais en y réfléchissant bien, c'est logique, on veut bien passer de la révision 2347 à la révision 2346

Il ne reste plus qu'à faire un commit.

mercredi 22 mars 2006

Gestion des sources

Que l'on travaille seul ou à plusieurs sur un projet, le besoin se fait rapidement sentir de pouvoir garder un historique des modifications que l'on a faites. La méthode, qui consiste à commenter une partie du code pour éventuellement la réutiliser, atteint rapidement ses limites lorsqu'on travaille à plusieurs ou longtemps sur un même projet. En ayant pratiqué cette méthode je me suis retrouvé à un moment avec plus de commentaire que de code!

Pour un projet qui dure ou pour un projet collaboratif, la meilleure façon de travailler est d'utiliser un gestionnaire de versions tel que C.V.S ou Subversion. Ma préférence va à Subversion surtout couplé avec Trac qui est une interface web à Subversion pour parcourir les sources. Trac intègre aussi un wiki, un gestionnaire de bugs, de tickets.

Pour débuter avec Subersion, rien ne vaut la lecture de la documentation, sous licence Creative Commons, publiée par Oreilly.

Haut de la page