GitMonteeVersion » Historique » Version 14
Igor GODI, 20/03/2014 15:42
1 | 2 | Igor GODI | h1. Utiliser GIT pour réaliser une montée de version |
---|---|---|---|
2 | 2 | Igor GODI | |
3 | 1 | Igor GODI | Exemple réalisé lors de la montée de version de cdt de 4937 à 4944. |
4 | 2 | Igor GODI | |
5 | 13 | Igor GODI | h2. Placer dans le dépôt un hook pre-commit |
6 | 13 | Igor GODI | |
7 | 14 | Igor GODI | GIT ne remonte pas les dossiers vides, ils restent fantômes dans le dépôt local et ne sont pas remontés dans le dépôt distant. |
8 | 14 | Igor GODI | Il est possible d'ajouter un hook (crochet Git) pre-commit : script qui sera lancé dans votre dépôt local avant chaque commit. |
9 | 14 | Igor GODI | Ce script disponible en bas de cette page à copier dans .git/hooks de votre dépôt local. |
10 | 14 | Igor GODI | |
11 | 13 | Igor GODI | *A NOTER :* ce hooks n'est jamais remonté sur le dépôt Git lors du push. |
12 | 13 | Igor GODI | |
13 | 4 | Igor GODI | h2. Placer dans le dépôt les sources de la nouvelle version |
14 | 2 | Igor GODI | |
15 | 2 | Igor GODI | Aller sur la branche upstream |
16 | 2 | Igor GODI | <pre> |
17 | 2 | Igor GODI | $ git checkout upstream |
18 | 2 | Igor GODI | </pre> |
19 | 2 | Igor GODI | |
20 | 2 | Igor GODI | Créer le dossier src/cdt-4944 |
21 | 12 | Igor GODI | Y déposer les sources téléchargées |
22 | 2 | Igor GODI | |
23 | 12 | Igor GODI | Commiter tout ça : |
24 | 2 | Igor GODI | <pre> |
25 | 2 | Igor GODI | $ git add . |
26 | 2 | Igor GODI | $ git commit -a |
27 | 2 | Igor GODI | </pre> |
28 | 2 | Igor GODI | |
29 | 2 | Igor GODI | Merger dans patch : |
30 | 2 | Igor GODI | <pre> |
31 | 2 | Igor GODI | $ git checkout patch |
32 | 2 | Igor GODI | $ git merge upstream |
33 | 2 | Igor GODI | </pre> |
34 | 2 | Igor GODI | |
35 | 4 | Igor GODI | h2. Relever les références des commits intéressant sur la branche patch |
36 | 2 | Igor GODI | |
37 | 7 | Igor GODI | *Note : on travaille dans la branche patch du dépot* |
38 | 2 | Igor GODI | Lister les logs |
39 | 2 | Igor GODI | <pre> |
40 | 2 | Igor GODI | $ git log --oneline |
41 | 2 | Igor GODI | </pre> |
42 | 3 | Igor GODI | |
43 | 3 | Igor GODI | Résultat (un peu raccourci) : |
44 | 3 | Igor GODI | <pre> |
45 | 3 | Igor GODI | ea60edf Merge branch 'upstream' into patch |
46 | 3 | Igor GODI | d43fe43 Sources téléchargées de la 4944 |
47 | 3 | Igor GODI | 216e426 Ajoute sondes pour l'espace consultation prof et élève |
48 | 3 | Igor GODI | 84c9536 Ajout de la sonde piwik |
49 | 3 | Igor GODI | dd6fbe9 Suppression de la pub pour l'appli mobile (fixes #6948) |
50 | 3 | Igor GODI | 173d0a4 adaptation de la version 4.9.3.7 dont correction pour retrouver l'éditeur xinha (fixes #5672) |
51 | 3 | Igor GODI | b096469 suppression de la partie EOLE |
52 | 3 | Igor GODI | a75f0f5 pb sur permission fluxEnvole.php si en mode conteneur |
53 | 3 | Igor GODI | 87b1d5f Supression du css dans la reponse |
54 | 3 | Igor GODI | c114261 Correction sur le fluxEnvole.php pour le badge |
55 | 3 | Igor GODI | 869b655 Changement des droits/owners de fluxEnvole.php en postservice |
56 | 3 | Igor GODI | 58aa7ca Ajout de fluxEnvole (badge CDT) dans tmpl |
57 | 3 | Igor GODI | 5074af3 montée de version 4937 |
58 | 3 | Igor GODI | 63662a8 patch d'initialisation |
59 | 3 | Igor GODI | 7708314 netoyage de patch |
60 | 3 | Igor GODI | c3cf447 prise en compte de la version 4.9.3.7 par le script d'installation (ref #5371) |
61 | 3 | Igor GODI | b40ac89 ajout des sources de la version 4.9.3.7 (ref #5371) |
62 | 3 | Igor GODI | c9139a8 option apache pour prise en compte htaccess |
63 | 3 | Igor GODI | aca734a nouveau patch |
64 | 3 | Igor GODI | ................ |
65 | 3 | Igor GODI | </pre> |
66 | 3 | Igor GODI | |
67 | 1 | Igor GODI | Dans le journal on relève 3 points : |
68 | 4 | Igor GODI | # Les sources téléchargées de la version précédente (4937) : *b40ac89* ajout des sources de la version 4.9.3.7 (ref #5371) |
69 | 4 | Igor GODI | # Les sources téléchargées de la version à mettre à jour (4944) : *d43fe43* Sources téléchargées de la 4944 |
70 | 4 | Igor GODI | # Les sources patchées envole de la version précédente (4937 adapatée à envole) : *216e426* Ajoute sondes pour l'espace consultation prof et élève |
71 | 1 | Igor GODI | |
72 | 4 | Igor GODI | h2. Recherche du travail à réaliser pour monter de version : |
73 | 4 | Igor GODI | |
74 | 7 | Igor GODI | *Note : on travaille dans la branche patch du dépot* |
75 | 5 | Igor GODI | Ce travail permet de construire un fichier ods (ou xls) qui nous donnera le travail a effectuer sur les fichiers (voir fichier téléchargeable en bas de cette page). |
76 | 1 | Igor GODI | |
77 | 5 | Igor GODI | 1: On liste les fichiers qui ont été modifiés pour Envole dans la version précedente |
78 | 5 | Igor GODI | <pre> |
79 | 8 | Igor GODI | $ git diff b40ac89 216e426 --name-only > liste-patch-envole.txt |
80 | 5 | Igor GODI | </pre> |
81 | 5 | Igor GODI | |
82 | 5 | Igor GODI | 2: On liste les fichiers qui ont été modifiés entre les 2 versions originales (UPSTREAM) |
83 | 5 | Igor GODI | <pre> |
84 | 8 | Igor GODI | $ git diff b40ac89:src/cdt-4937/ d43fe43:src/cdt-4944/ --name-only > liste-modif-upstream.txt |
85 | 5 | Igor GODI | </pre> |
86 | 5 | Igor GODI | |
87 | 5 | Igor GODI | 3: Mise en place de la feuille ods (xls) |
88 | 5 | Igor GODI | * Créer un nouveau document de type feuille de calcul |
89 | 5 | Igor GODI | * Recopier dans la colonne A le contenu du fichier liste-patch-envole.txt |
90 | 5 | Igor GODI | * Recopier dans la colonne B le contenu du fichier liste-modif-upstream.txt |
91 | 1 | Igor GODI | * A l'aide de couper coller des élèments de la colonne A, mettre en concordance le nom des fichiers. |
92 | 9 | Igor GODI | * Un fois ce travail réalisé, on observe 3 cas de figure : |
93 | 6 | Igor GODI | ** *Fichiers uniquements présents en colonne B* : sont mis à jour dans la version originale mais non modifiés pour Envole. Dans ce cas rien n'est à faire. |
94 | 6 | Igor GODI | ** *Fichiers uniquements présents dans la colonne A* : il s'agit des fichiers |
95 | 1 | Igor GODI | *** modifiés pour Envole mais qui n'ont pas subit de modification dans la version originale |
96 | 1 | Igor GODI | *** ou ajoutés pour les besoins d'Envole et qui n'existent pas dans la version originale. |
97 | 6 | Igor GODI | Dans ce cas une simple copie de ces fichiers depuis l'ancienne version patchée dans src/cdt-4937 vers le dossier src/cdt-4944 |
98 | 6 | Igor GODI | ** *Fichiers présents dans les 2 colonnes* : dans ce cas, on doit patcher manuellement chaque fichier, il existe 2 méthodes : |
99 | 8 | Igor GODI | *** _La plus courante_ : on regarde ce qui a été modifié pour Envole de l'ancienne version (git diff b40ac89 216e426 src/cdt-4937/chemin/fichier) et on modifie le fichier dans src/cdt-4944 |
100 | 10 | Igor GODI | *** _La moins courante_ mais utile si le patch Envole apporte beaucoup de modification par rapport à la modification de version originale : on recopie l'ancienne version du fichier patché dans src/cdt-4937 vers le dossier src/cdt-4944, on regarde ce qui a été modifié dans les versions originales (git diff b40ac89:src/cdt-4937/dossier/fichier d43fe43:src/cdt-4944/dossier/fichier) et on modifie le fichier dans src/cdt-4944 |
101 | 4 | Igor GODI | |
102 | 4 | Igor GODI | h2. Traitement de la base de données |
103 | 4 | Igor GODI | |
104 | 4 | Igor GODI | A faire comme d'habitude : |
105 | 11 | Igor GODI | * soit il existe un script dans le code de l'appli : |
106 | 11 | Igor GODI | ** On le lance via sharenvole. |
107 | 11 | Igor GODI | ** On le lance en postservice (ligne de commande ou curl -k) ou posttemplate (script en ligne de commande uniquement) |
108 | 11 | Igor GODI | * On génère un patch sql en réalisant un différentiel entre un dump SQL de la base avant installation et d'un dump SQL après l'installation et le process de maj de l'application : |
109 | 11 | Igor GODI | ** Méthode 1 : on compare les 2 dumps (à l'aide de l'outil diff par exemple). Cette méthode peut s'avérer rébarbative. |
110 | 11 | Igor GODI | ** Méthode 2 : on utilise un outil permettrant de "macher le boulôt" comme mysql-diff : |
111 | 11 | Igor GODI | *** Le télécharger sur [[https://bitbucket.org/stepancheg/mysql-diff/downloads/mysql-diff-0.3.tar.gz]] |
112 | 11 | Igor GODI | *** Le décompacter |
113 | 11 | Igor GODI | *** Pour le lancer : monchemin/mysql-diff/bin/mysql-diff dump-avant-install.sql dump-après-install.sql |
114 | 11 | Igor GODI | *** mysql-diff génère les requêtes SQL à intégrer dans les scripts de mise à jour, ce script a cependant quelques petites imperfections : |
115 | 11 | Igor GODI | **** Ne gère pas les AFTER dans les ALTER TABLE ADD COLUMNS.... |
116 | 11 | Igor GODI | **** N'aime pas du tout les vues. |
117 | 11 | Igor GODI | **** *_Le troisième point : je ne sais plus : TODO_* |