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