Utiliser Git pour les mises à jour de Gepi

Git est un outil pour développeurs avec lequel ils peuvent travailler simultanément sur un même projet. Le fichiers se trouvent sur un dépôt distant, chaque développeur travaille sur une copie locale de ce dépôt, et Git est utilisé pour synchroniser le contenu de ces dépôts. Git permet également de gérer plusieurs versions (appelées branches) du projet.

Le dépôt officiel de Gepi est géré avec Git, et on peut donc utiliser ce dernier pour faire les mises à jour par synchronisation, ce qui est nettement plus rapide que de télécharger et décompresser une archive. Mais pour mettre en place cette solution il faut avoir un accès complet au serveur, ce qui exclut les hébergements mutualisés. De plus il faudra désactiver Gepi le temps de faire les manipulations nécessaires, s'assurer ensuite que tout fonctionne correctement, et donc choisir plutôt une période de vacances pour ces manipulations.

Mise en place sous Linux

On suppose ici que Gepi se trouve dans le dossier /var/www/gepi d'un serveur sous Debian (ou Ubuntu , ou autre distribution dérivée de Debian).

Préparation

  • par précaution faire une sauvegarde du dossier gepi et de la base
  • couper les connexions à Gepi, y compris d'éventuelles connexions administrateur
  • renommer le dossier gepi en gepi-bak
  • installer (si ce n'est déjà fait) Git
    apt-get install git
  • cloner le dépôt officiel, pour cela
    se placer dans /var/www et lancer la commande
    git clone git://github.com/tbelliard/gepi.git gepi

    ce qui va créer un nouveau dossier gepi contenant les fichiers de la vesion en cours de développement (master) de Gepi et un dossier .git utilsé par Git pour les synchronisations avec el dépôt officiel,
    afin que Git ne tienne pas compte des droits des fichiers du dossier gepi, ouvrir avec un éditeur de texte le fichier config du dossier .git et dans la section [core] donner au parmètre filemode la valeur false
    filemode = false

    (si cette ligne n'est pas présente l'ajouter),
    ensuite se placer dans ce dossier gepi et créer une branche correspondant à la branche officielle 1.6.4,
    cd gepi
    git checkout origin/release-1.6.4 -b release-1.6.4
    

    enfin modifier les droits (wwww-data:www-data est le user:group auquel doivent appartenir les fichiers afin que le serveur Apache puisse les modifier si nécessaire)
    cd ..
    chmod -R 775 gepi/
    chown -R www-data:www-data gepi/
    
  • déplacer le fichier connect.inc.php de gepi-back/secure vers gepi/secure
  • copier les dossiers gepi-back/documents et gepi-back/photos dans gepi
  • éventuellement copier également les dossiers plugins de gepi-back/mod_plugins dans gepi

Les connexions à Gepi peuvent maintenant rétablies.

Dans le cas d'une installation ex-nihilo de Gepi la marche à suivre est la même, excepté bien sûr tout ce qui concerne l'ancien dossier de Gepi.

Mises à jour

Pour mettre à jour Gepi il suffit désormais de se placer dans le dossier gepi et de lancer les commandes

git pull origin
chmod -R 775 *
chown -R www-data:www-data *

Cette mise à jour peut-être faite automatiquement en créant un fichier maj_gepi.sh contenant
#!/bin/bash
cd /var/www/gepi
git pull origin
chmod -R 775 *
chown -R www-data:www-data *

qui sera ensuite exécuté régulièrement par cron.

Attention : si un plusieurs fichiers du dossier gepi devaient être modifiés, par exemple pour résoudre temporairement un bug, il faut absolument les sauvegarder avant de faire les modifications, et arrêter les mises à jour tant que les fichiers modifiés sont en place. Les mises à jour ne peuvent être reprises qu'après avoir restauré les fichiers modifiés dans leur état avant modification.

Enfin quand une nouvelle branche officielle sera créée il faudra lancer les commandes

cd /var/www/gepi
git checkout origin/release-1.6.x -b release-1.6.x
chmod -R 775 *
chown -R www-data:www-data *

et se connecter administrateur pour faire la mise à jour de la base.

Mise en place sous Windows

On supposera ici que Gepi est installé avec Xampp (mais il existe bien d'autres possibiltés) et se trouve dans le dossier C:\xampp\htdocs\gepi

Installation de Git

Le téléchargement automatique de la dernière version de Git pour Windows se fait avec
http://git-scm.com/download/win Si le téléchargement ne se déclenche pas on peut trouver l’utilitaire d'installation sur https://code.google.com/p/msysgit/downloads/list , il faut télécharger la dernière version 'preview'.

Pour les mises à jour de Gepi il n'est pas nécessaire d'installer tous les composants :

  • Ajouter "Git Bash Here" au menu contextuel n'est pas nécessaire, mais peut être utile : cela permet par un clic-droit sur un dossier de l'ouvrir dans une console avec un interpréteur bash (et donc d'avoir accès à des commandes Unix). Par contre "Git GUI here" n'a d'intérêt que pour les développeurs.

  • Sélectionner "Git Bash only" est suffisant, les deux autres options encombreraient inutilement la variable PATH.

  • Choisir OpenSSH pour ne pas encombrer le système.

  • "Chekcout as is" signifie : récupérer les fichiers tels qu'ils sont sur le dépôt officiel. Quant aux "commit" cela concerne uniquement les développeurs.

Après installation on peut vérifier que Git est bien disponible en ouvrant une fenêtre DOS (cmd.exe) et lançant la commande

C:\Program Files (x86)\Git\bin\git.exe

Git affiche alors un rappel sur sa syntaxe d'appel.

Préparation

  • par précaution faire une sauvegarde du dossier gepi et de la base
  • couper les connexions à Gepi, y compris d'éventuelles connexions administrateur
  • renommer le dossier gepi en gepi-bak
  • cloner le dépôt officiel, pour cela
    ouvrir un fenêtre DOS, se placer dans C:\xampp\htdocs\gepi et lancer la commande
    "C:\Program Files (x86)\Git\bin\git.exe" clone git://github.com/tbelliard/gepi.git gepi

    ce qui va créer un nouveau dossier gepi,
    se placer dans ce dossier gepi et créer une branche correspondant à la branche officielle 1.6.4
    "C:\Program Files (x86)\Git\bin\git.exe" checkout origin/release-1.6.4 -b release-1.6.4
  • déplacer le fichier connect.inc.php de gepi-back/secure vers gepi/secure
  • copier les dossiers gepi-back/documents et gepi-back/photos dans gepi
  • éventuellement copier également les dossiers plugins de gepi-back/mod_plugins dans gepi

Les connexions à Gepi peuvent maintenant rétablie. Le nouveau dossier gepi contient un sous-dossier .git que Git utilisera pour synchroniser avec le dépôt officiel.

Dans le cas d'une installation ex-nihilo de Gepi la marche à suivre est la même, excepté bien sûr tout ce qui concerne l'ancien dossier de Gepi.

Mises à jour

Pour mettre à jour Gepi il suffit désormais de se placer dans le dossier gepi et de lancer la commande

"C:\Program Files (x86)\Git\bin\git.exe" pull origin

Cette mise à jour peut-être faite automatiquement en créant un fichier maj_gepi.bat contenant
cd C:\xampp\htdocs\gepi
"C:\Program Files (x86)\Git\bin\git.exe" pull origin
qui sera ensuite exécuté régulièrement avec le planificateur de tâches.

Attention : si un plusieurs fichiers du dossier gepi devaient être modifiés, par exemple pour résoudre temporairement un bug, il faut absolument les sauvegarder avant de faire les modifications, et arrêter les mises à jour tant que les fichiers modifiés sont en place. Les mises à jour ne peuvent être reprises qu'après avoir restauré les fichiers modifiés dans leur état avant modification.

Enfin quand une nouvelle branche officielle sera créée il faudra lancer les commandes

cd C:\xampp\htdocs\gepi
"C:\Program Files (x86)\Git\bin\git.exe" checkout origin/release-1.6.x -b release-1.6.x

et se connecter administrateur pour faire la mise à jour de la base.

install_1.png (19.9 KB) Marc Leygnac, 03/27/2014 06:21 PM

install_4.png (24.2 KB) Marc Leygnac, 03/27/2014 06:21 PM

install_2.png (23.6 KB) Marc Leygnac, 03/27/2014 06:21 PM

install_3.png (19.2 KB) Marc Leygnac, 03/27/2014 06:21 PM