Git, gitolite et mutualisé OVH

/!\ pour la version 3 pensez à lire ceci.

Hello,
Sur les mutualisés OVH, la version fournie de git est plus qu’out-of-date : version 1.4.4. Ceci signifie impossibilité d’installé des outils tels que gitolite ou inferno. Ce billet est l’occasion d’un guide pour installer gitolite.

Le guide suivant a été rédigé sur un compte OVH pro, donc avec accès un ssh. En utilisant git 1.7.6 et gitolite 2.0.3. L’ensemble exécuter sur une machine Linux.

Téléchargement

La première étape, consiste a récupérer les différentes archives nécessaires, a savoir git et gitolite.

Pour git, il vous suffit de prendre la dernière version http://git-scm.com/download.

Pour gitolite, il suffit d’utiliser git!

git clone https://github.com/sitaramc/gitolite.git

Préparation de l’environnement

Nous allons installer les exécutables de git dans ~/opt/bin. De ce fait ajoutons le path a l’utilisateur ssh.
Ouvrir ~/.bash_profile et modifier le path. Pour ce faire ajouter, avant le export :

PATH=$HOME/opt/bin:$PATH

Installation de git

Uploader votre archive dans un dossier (ici ~/opt/src/). En mode console par ssh, donc sur le serveur, ouvrir l’archive et compiler les sources.

tar -xvzf git-1.7.6.tar.gz
cd git-1.7.6
./configure --prefix=$HOME/opt --without-tcltk
make
make install

Une fois compilé, les exécutables seront présents dans ~/opt/bin. Pour vérifier, que tout est bien en place :

git --version

Gitolite

Il faut se rendre dans le répertoire du clone du repository. Tout s’exécute uniquement sur la machine cliente (donc pas chez ovh). Si l’utilisateur est « toto », l’host « tata.com » et le futur administrateur « moiadmin »

./src/gl-easy-install toto tata.com moiadmin

Il suffit de faire enter. Dans tous les cas (mise à jour du script compris!), le fait de réexecuter la commande permet de rectifier les erreurs éventuelles. À l’étape de l’édition du fichier de configuration, il faut modifier la variable $GIT_PATH pour quelle pointe vers le répertoire contenant notre git. Dans notre cas :

$GIT_PATH = $ENV{HOME} . "/opt/bin/";

Configuration de Gitolite

La configuration de gitolite est simple et s’exécute avec … git! En principe, un répertoire reprenant la config a été créé sur votre home dans ~/gitolite-admin, dans le cas contraire, il vous suffit de faire

git clone gitolite:gitolite-admin.git

Pour ajouter des clefs ssh, il suffit de les mettre dans le dossier keys. Pour ce qui est de la config, il vous suffit d’éditer le fichier gitolite.conf et puis de faire

git add conf/gitolite.conf
git commit -m 'update config'
git push

Et c’est tout!

Sources :
http://forum.ovh.com/showthread.php?t=71543
http://blog.lyrixx.info/admin-sys/installer-gitolite-sur-une-machine-debian-5/
http://sitaramc.github.com/gitolite/doc/gitolite.rc.html
http://sitaramc.github.com/gitolite/doc/gitolite.conf.html#_groups

Pour vos interfaces web, trois solutions correctes :
CGit
View Git
Indefero

Vitesse et référencement

La vitesse d’affichage d’une page web est actuellement, et ce depuis un certain temps, devenu importante. Surtout en ce qui concerne l’optimisation et par conséquent le référencement. Afin de gagner ces quelques millisecondes qui feront la différence, il existe plusieurs méthodes et techniques. En voici quelques-unes, avec des exemples.

Diminuer le nombre de requêtes HTTP

Chaque requête HTTP au sein du fichier prend un certain temps, mais surtout bloque le chargement global de la page web. En effet, HTTP et HTML chargent les ressources au fur et à mesure que la page le demande.

Continue reading

Future … et projets

Mon blog va évoluer d’ici quelques mois, des changements sont en perspectives.

Tout d’abord, passons en revue les sujets qui seront abordés. Encore et toujours Zend Framework, je compte continuer de publier. C’est un sujet qui m’intéresse et qui je trouve est très intéressant. Par ailleurs, je compte faire une série d’articles sur CMIS. Si vous ignorez ce que c’est … alors tant mieux!
En dehors de ces sujets principaux, seront aussi abordés des projets. Dans ceux-ci on pourra citer principalement deux choses : FSB dont le développement va reprendre (enfin …) et des projets sous Android.

Bref, des choses intéressantes et alléchantes, mais ce n’est pas tout! Je compte faire du nettoyage. Hé oui, le printemps arrive, les oiseaux chantent, et certains sortes les balais et les caisses pour le « nettoyage de printemps », ce sera donc mon cas. Depuis trop longtemps, je remet a plus tard de me faire un vrai site avec un contenu qui me correspondent et non des « machins » accumulés et qui date …

Donc :

  • des projets a réalisé
  • des sujets à aborder
  • un site renouvelé

Voilà le programme!

Mais aussi, et c’est une idée qui me trotte dans la tête depuis longtemps, éventuellement un nouveau blog ou site consacré à la cuisine.

Vous avez le menu, reste à savoir si le chef sera dans les temps.

Planet Zend Framework

Un planet sur Zend Framework, pour les francophones est née!

Tout d’abord qu’est-ce qu’un planet?
Un planet est un agrégateur de flux rss concernant un même sujet. Le but est de promouvoir mais surtout de concentrer les articles publié sur le sujet.

Pour ceux qui désirerait y goûter, je vous renvoi vers le site : zf planet

N’hésitez pas à demander a en faire partie.

[note]Zend Framework et dojo : auto-complétion

Ceci est une note rapide … j’espère produire un article plus intéressant une autre fois …

Nous allons regarder les bases de l’auto-complétion  avec ZF et Dojo. Dojo simplement parce qu’il est le mieux intégré des frameworks javascript. Sachant que pour l’instant seul jQuery et Dojo sont intégré

Le code

application/views/scripts/test/index.phtml

<?php
$this->dojo()->enable();	//activation de dojo
 
echo $this->comboBox(
	'toto',	//id html de l'élément
	'',	//valeur par défaut
	array(
		'autocomplete'	=> true,								//activation de l'auto-complétion
		'store'		=> 'stateStore',
		'storeType'		=> 'dojo.data.ItemFileReadStore',
		'storeParams'	=> array('url' => $this->baseUrl('/test/records')),	//url où les données JSON sont récupérée
		'searchAttr'		=> 'title',								//donnée recherchée pour remplir le combobox
	)
);
?>

application/layoutes/scripts/layout.phtml

// ...
		if ($this->dojo()->isEnabled())	//Évite les chargement inutile ....
		{
			$this->dojo()->setDjConfigOption('isDebug', (APPLICATION_ENV == 'development'));	//affiche une console de deboguage si on est en mode dev
			$this->dojo()->setDjConfigOption('usePlainJson', true);						//utilise du json texte
			$this->dojo()->setLocalPath($this->baseUrl('/themes/js/dojo/dojo/dojo.js'));			//chemin vers les fichier dojo
			$this->dojo()->addStyleSheetModule('dijit.themes.tundra');					//thème à chargé
			echo $this->dojo();												//affichage du tout ...
		}
// viennent ensuite nos jabvascript, css, etc
//...
//</head>
// ne pas oublier la class tundra dans le body
<body class="tundra">
//...

application/Bootstrap.php

//...
//dans _initView()
		//dojo
		Zend_Dojo::enableView($view);
//...

application/controllers/TestController.php

<?php
 
class TestController extends Zend_Controller_Action
{
	public function indexAction()
	{
	}
 
	public function recordsAction()
	{
		// on désactive l'affichage
		$this->_helper->layout()->disableLayout();
 
		//on va cherchée les données et les met dans un objet Zend_Dojo_Data
		$book = new Default_Model_DbTable_Book();
		$dojo = new Zend_Dojo_Data('title', $book->fetchAll());
		echo $dojo->toJson();
 
		// on sort ... c'est pas joli mais en attendant cela fonctionne!
		exit();
	}
}
 
# EOF

Choses à retenir comprendre

Les choses à retenir :

  • storeParams est l’url où les donnée au format JSON seront prise
  • searchAttr est l’élément qui va servir pour recherchée les données dans la masse de donnée JSON
  • ne pas oublier de mettre la class css ‘tundra’
  • Dojo peut, via ses styles css modifier votre rendu …

Remarque

Version de ZF : 1.9.6

Version de Dojo (fourni avec zf dans extras) : 1.3