Git on Trac
Bossant toujours sur du php avec mon fidèle compagnon git j’ai cherché à publier le code sur un dépôt public, et via Trac. J’ai eu beaucoup de mal à trouver une conf multiprojets qui marche, et j’ai même testé Redmine quand j’en ai eu marre de Trac.
Git poush, git clone
Dans les articles que j’avais publié, il y a plus d’un an maintenant j’avais zappé un paragraphe super important je pense : comment créer un dépôt et pousser vers celui ci. Le problème étant que bien souvent on crée le dépôt lorsqu’à déjà une certaine base de code disponible et un certain nombre de branches en l’air. Pas question dans ce cas là d’exporter le dépôt, de virer la copie locale et de faire un clone du dépôt distant. Non il faut simplement rajouter un dépôt distant à votre dépôt local :
git remote add NOM ssh://USER@NOM:/PATH/TO/DEPOT
Hop c’est dans la boîte.
Trac.conf.fail
Donc la suite logique était de mettre un outil convivial pour voir les logs et tout à partir du web. Un truc comme Trac donc. Le souci c’est que je voudrais avoir un support multi projet chose que Trac ne connaît pas (en fait si, vous verrez plus bas) vraiment. Donc armé de mon couteau je me suis jeté dans le web à la recherche d’une doc décrivant la mise en place de Trac multiprojet avec Lighttpd. Ce qui s’est soldé par un echec, la conf étant un peu obscure.
Redmine.interface.fail
Après quelques heures j’ai finalement accepté l’avis de mes camarades-lutins du jardin magique et j’ai testé Redmine . C’est du Rails donc ça ne peut que me plaire me direz vous, eh bien … après avoir réussi à l’installer et le faire marcher j’en suis arrivé à la conculsion que je suis particulièrement attaché à l’interface de Trac. Donc exit Redmine.
Trac.doc.win
La nuit porte conseil, et c’est donc frais et dispo que je suis reparti dans les docs de Trac pour découvrir, après avoir à nouveau tenté de rajouter une conf propre à Lighttpd, qu’il était possible d’utiliser tracd en mode multiprojet . Pour parfaire l’intégration aux vhosts existant il faut rajouter une conf proxy à Lighttpd :
server.modules += ( "mod_proxy" ) $HTTP["host"] =~ "git.arbousier.info" { proxy.server = ("" => ( "trac" => ( "host" => "127.0.0.1", "port" => 5000 ))) }
J’ai aussi du rajouter une ligne dans la configuration vhost afin d’éviter qu’il ne cherche à appliquer celle ci pour ce host particulier. Pour cela il suffit d’entourer la configuration par :
$HTTP["host"] != "git.arbousier.info" {
- configuration vhost
}
Enfin, on ajoute l’"authentification":http://trac.edgewall.org/wiki/TracStandalone (using authentification) : hop le tour est joué.
Wiiiizzzz

