Projet

Général

Profil

MiseAJourGit » Historique » Version 3

Marc Leygnac, 28/03/2014 18:45

1 3 Marc Leygnac
h1. Utiliser Git pour les mises à jour de Gepi (@page en construction@)
2 1 Marc Leygnac
3
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.
4
5
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.
6
7
8
h2. Mise en place sous Linux
9
10
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).
11
12
h3. Préparation
13
14
* par précaution faire une sauvegarde du dossier @gepi@ et de la base
15
* couper les connexions à Gepi, y compris d'éventuelles connexions administrateur
16
* renommer le dossier @gepi@ en @gepi-bak@
17
* installer (si ce n'est déjà fait) Git
18
<pre>apt-get install git</pre>
19
20
* cloner le dépôt officiel, pour cela
21 2 Marc Leygnac
se placer dans /var/www et lancer les commandes
22 1 Marc Leygnac
<pre>git clone git://github.com/tbelliard/gepi.git gepi</pre>
23 2 Marc Leygnac
ce qui va créer un nouveau dossier @gepi@, puis
24 1 Marc Leygnac
<pre>
25 2 Marc Leygnac
chmod -R 775 gepi/
26
chown -R www-data:www-data gepi/
27
</pre>
28
pour 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)
29
Ensuite se placer dans le dossier @gepi@ et créer une branche correspondant à la branche officielle 1.6.4 (le paramètre @-f@ est nécessaire afin que Git ne considère pas les changements de droits et propriétaire des fichiers comme des modifications)
30
<pre>
31 1 Marc Leygnac
cd gepi
32 2 Marc Leygnac
git checkout -f origin/release-1.6.4 -b release-1.6.4
33 1 Marc Leygnac
</pre>
34
35
* déplacer le fichier connect.inc.php de gepi-back/secure vers gepi/secure
36
* copier les dossiers gepi-back/documents et gepi-back/photos dans gepi
37
* éventuellement copier également les dossiers plugins de gepi-back/mod_plugins dans gepi
38
39
Les connexions à Gepi peuvent maintenant rétablies. Le nouveau dossier @gepi@ contient un sous-dossier @.git@ que Git utilisera pour synchroniser avec le dépôt officiel.
40
41 3 Marc Leygnac
Dans le cas d'une installation ex-nihilo de Gepi seuls l'installation de Git et le clonage du dépôt officiel sont nécessaires.
42
43 1 Marc Leygnac
h3. Mises à jour
44
45
Pour mettre à jour Gepi il suffit désormais de se placer dans le dossier @gepi@ et de lancer la commande
46 3 Marc Leygnac
<pre>
47
git pull origin
48
chmod -R 775 *
49
chown -R www-data:www-data *
50
</pre>
51 1 Marc Leygnac
Cette mise à jour peut-être faite automatiquement en créant un fichier maj_gepi.sh contenant
52
<pre>
53
#!/bin/bash
54
cd /var/www/gepi
55
git pull origin
56 3 Marc Leygnac
chmod -R 775 *
57
chown -R www-data:www-data *
58 1 Marc Leygnac
</pre>
59
qui sera ensuite exécuté régulièrement par "cron":http://debian-handbook.info/browse/fr-FR/stable/sect.task-scheduling-cron-atd.html.
60
61
*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.
62
63
Enfin quand une nouvelle branche officielle sera créée il faudra lancer les commandes
64
<pre>
65
cd /var/www/gepi
66 3 Marc Leygnac
git checkout -f origin/release-1.6.x -b release-1.6.x
67 1 Marc Leygnac
</pre>
68
et se connecter administrateur pour faire la mise à jour de la base.
69
70
71
h2. Mise en place sous Windows
72
73
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
74
75
h3. Installation de Git
76
77
Le téléchargement automatique de la dernière version de Git pour Windows se fait avec 
78
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'.
79
80
Pour les mises à jour de Gepi il n'est pas nécessaire d'installer tous les composants :
81
82
* 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.
83
84
bq. !install_1.png!
85
86
* Sélectionner "Git Bash only" est suffisant, les deux autres options encombreraient inutilement la variable PATH.
87
88
bq. !install_2.png!
89
90
* Choisir OpenSSH pour ne pas encombrer le système.
91
92
bq. !Install_3.png!
93
94
* "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.
95
96
97
bq. !Install_4.png!
98
99
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
100
<pre>C:\Program Files (x86)\Git\bin\git.exe</pre>
101
Git affiche alors un rappel sur sa syntaxe d'appel.
102
103
h3. Préparation
104
105
* par précaution faire une sauvegarde du dossier @gepi@ et de la base
106
* couper les connexions à Gepi, y compris d'éventuelles connexions administrateur
107
* renommer le dossier @gepi@ en @gepi-bak@
108
109
* cloner le dépôt officiel, pour cela
110
ouvrir un fenêtre DOS, se placer dans C:\xampp\htdocs\gepi et lancer la commande
111
<pre>"C:\Program Files (x86)\Git\bin\git.exe" clone git://github.com/tbelliard/gepi.git gepi</pre>
112
ce qui va créer un nouveau dossier @gepi@
113
se placer dans ce dossier @gepi@ et créer une branche correspondant à la branche officielle 1.6.4
114
<pre>"C:\Program Files (x86)\Git\bin\git.exe" checkout origin/release-1.6.4 -b release-1.6.4</pre>
115
116
* déplacer le fichier connect.inc.php de gepi-back/secure vers gepi/secure
117
* copier les dossiers gepi-back/documents et gepi-back/photos dans gepi
118
* éventuellement copier également les dossiers plugins de gepi-back/mod_plugins dans gepi
119
120
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.
121 3 Marc Leygnac
122
Dans le cas d'une installation ex-nihilo de Gepi seuls l'installation de Git et le clonage du dépôt officiel sont nécessaires.
123 1 Marc Leygnac
124
h3. Mises à jour
125
126
Pour mettre à jour Gepi il suffit désormais de se placer dans le dossier @gepi@ et de lancer la commande
127
<pre>"C:\Program Files (x86)\Git\bin\git.exe" pull origin</pre>
128
Cette mise à jour peut-être faite automatiquement en créant un fichier maj_gepi.batr contenant
129
<pre>
130
cd C:\xampp\htdocs\gepi
131
"C:\Program Files (x86)\Git\bin\git.exe" pull origin
132
qui sera ensuite exécuté régulièrement avec le planificateur de tâches.
133
</pre>
134
135
*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.
136
137
Enfin quand une nouvelle branche officielle sera créée il faudra lancer les commandes
138
<pre>
139
cd C:\xampp\htdocs\gepi
140
"C:\Program Files (x86)\Git\bin\git.exe" checkout origin/release-1.6.x -b release-1.6.x
141
</pre>
142
et se connecter administrateur pour faire la mise à jour de la base.