Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?

[TUTO] Comment fabriquer les fichiers complets en local à partir d'un patch Magento officiel
(1 lecteur(s)) (1) Invité(s)
Aller en basPage: 1
SUJET:

[TUTO] Comment fabriquer les fichiers complets en local à partir d'un patch Magento officiel

*
#73523
zuiko
Moderator
Messages: 2867
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin

[TUTO] Comment fabriquer les fichiers complets en local à partir d'un patch Magento officiel

Il y a 2 Années, 9 Mois
Karma: 85  
Comme je n'aime pas appliquer les patchs, même officiels, en aveugle et qu'en plus, parfois des fichiers templates sont touchés et qu'il faut faire des reports dans son propre thème, j'aime bien fabriquer les fichiers Magento patchés sur un PC local pour analyse. Souvent magentary.com fournit des fichiers de ce genre pour installation via FTP (sans SSH) mais d'une part parfois ils mettent un certain temps, ne fournissent pas toutes les versions et jamais l'original pour comparaison.

Donc voici ma recette sous Windows.

OUTILLAGE

Il faut d'abord se procurer un certain nombre d'outils :
- WinSCP qui est le seul client FTP pilotable en ligne de commande sous Windows :
winscp.net/eng/download.php
- Patch.exe qui permet d'appliquer les patchs sous Windows.
gnuwin32.sourceforge.net/packages/patch.htm
- il faut aussi Notepad++ et Openoffice ou Libreoffice mais tout le monde a çà dans sa boite à outils

Pour que les deux 1ers outils fonctionnent facilement dans une console de commande Windows il faut mettre à jour la variable d'environnement PATH de Windows.
Clic droit sur le "poste de travail" ou "l'ordinateur" (en fonction de la version Windows), propriétés, paramètres système avancés, variables d'environnement, ajoutez une variable utilisateur :
Nom : Path
Valeur : %PATH%;C:§Program Files (x86)§WinSCP;C:§Program Files (x86)§GnuWin32bin
OK
(aménagez au besoin les chemins si vous particularisez l'installation...)
* remplacer § par des anti slashes non admis par le forum grrrr...

A l'installation de WinSCP, celui-ci récupère (si vous lui confirmez) vos sites FTP de Filezilla et toutes leurs informations de connexion, ce qui est particulièrement appréciable. Repérez bien le nom de connexion FTP à votre serveur Magento, nous la citerons ensuite sous le nom ma-connexion-mag

TELECHARGER UN PATCH OFFICIEL (correspondant à votre version Magento)
C'est par ici : www.magentocommerce.com/download mais il vaut mieux être logué.
Le fichier est un batch Linux du genre :
PATCH_SUPEE-6788_CE_VERSION_v1-2015-11-04-05-11-44.sh
L'éditer sous Notepad++
menus Édition => Convertir les sauts de ligne => on choisit les fins de ligne Windows.
Supprimer toutes les lignes depuis le début jusqu'à la 1ère ligne (non comprise) contenant :
Code :


diff --git


Sauvegarder le fichier sous un autre nom, par exemple : PATCH_SUPEE-6788-ed1.txt
dans le répertoire C:§SUPEE-6788PATCH par exemple.
* remplacer § par des anti slashes

FABRICATION DU FICHIER BATCH WinSCP
Toujours sous Notepad++ sur le même fichier,
sélectionner la chaîne de caractères
Code :

 
diff –git


Marquer les lignes contenant cette chaîne par la commande de recherche (paire de jumelles/onglet marquer/cocher marquer les lignes/rechercher tout).
Démarquer manuellement toutes les lignes suivies de
Code :

 
new file


(le patch créera un nouveau fichier donc inutile de le télécharger de votre Magento, il n'existe pas et la commande ferait échouer WinSCP).
Menu Recherche/Signet/Copier les lignes marquées
Coller les lignes dans un nouveau classeur Calc (Openoffice ou LibreOffice) afin de pouvoir changer facilement les caractères / et anti slash (Alt Gr 8 le forum ne permet pas de taper ce caractère) suivant le serveur ou local concerné.
Le collage dans un classeur Calc provoque l'affichage de la fenêtre d'importation, cliquer sur l'espace comme séparateur, puis OK, les éléments se trouvent donc dans des colonnes séparées.
Supprimer la 1ère colonne contenant diff.
La 1ère colonne contient maintenant --git
Remplacer cette chaîne par get
La 2ème colonne contient les fichiers distants, ajouter en tête de chaque ligne ./
La 3ème colonne contient l'emplacement du futur fichier local, comme ce sera sous Windows, il faut inverser les / en anti slash
Créez des lignes en tête pour ajouter en colonne 1 les commandes de connexion FTP :
Code :


# connexion (nom de connexion sous winSCP sans espaces)
open ma-connexion-mag (a adapter voir plus haut))
# options de transfert
option transfer binary
# imposer repertoire distant (a adapter)
cd /var/www/monsite.com/magento
# confirmer repertoire distant (utile pour test eventuel)
pwd
# imposer repertoire local (a adapter)
lcd C:§SUPEE-6788§PATCH
# confirmer repertoire local (utile pour test eventuel)
lpwd
#transfert des fichiers


* remplacer § par des anti slashes

Votre fichier batch pour WinSCP est presque prêt :
Fichier/enregistrer sous
Choisir format Texte CSV / cocher éditer les paramètres du filtre /Enregistrer/Conserver le format actuel
Jeu de caractères : Unicode (UTF-8)
Séparateur de champ : {espace}
Séparateur de texte : effacer la zone
Décocher tout le reste
OK
Choisissez un nom de fichier : FTP-SUPEE-6788.txt par exemple que vous mettrez dans le répertoire C:§SUPEE-6788, renommer .csv en .txt si calc ne le fait pas, son encodage est UTF8 avec BOM (vérifiable sous Notepad++).

Le fichier a normalement cette allure :
Code :


# connexion (nom de connexion sous winSCP sans espaces)
open ma-connexion-mag (a adapter voir plus haut))
# options de transfert
option transfer binary
# imposer repertoire distant (a adapter)
cd /var/www/monsite.com/magento
# confirmer repertoire distant (utile pour test eventuel)
pwd
# imposer repertoire local (a adapter)
lcd C:§SUPEE-6788§PATCH
# confirmer repertoire local (utile pour test eventuel)
lpwd
#transfert des fichiers
get ./.htaccess .htaccess
get ./.htaccess.sample .htaccess.sample
get ./app/code/core/Mage/Admin/etc/config.xml app§code§core§Mage§Admin§etc§config.xml
get ./app/code/core/Mage/Adminhtml/etc/adminhtml.xml app§code§core§Mage§Adminhtml§etc§adminhtml.xml
.../...


* j'ai remplacé les anti slash par des § pour le forum

RAPATRIEMENT EN LOCAL DES FICHIERS A PATCHER
- Ouvrir une console Windows en mode administrateur (rechercher cmd, cmd.exe exécuter en tant qu'administrateur).
- se déplacer dans le répertoire SUPEE-6788 par
Code :

 
cd SUPEE-6788


Taper :
Code :


winscp /script=FTP-SUPEE-6788.txt /log=FTP-SUPEE-6788.log



Les seuls fichiers concernés sont dans leur arborescence Magento dans le répertoire C:§SUPEE-6788§PATCH

Vous pouvez consulter le fichier C:§SUPEE-6788§FTP-SUPEE-6788.log pour voir ce qui s'est passé.
* j'ai remplacé les anti slash par des § pour le forum

APPLICATION DU PATCH
Dans la même console Windows, faites un essai d'application du patch en tapant :
Code :


cd PATCH
patch --dry-run --verbose -p0 -b -z .~ORG-6788 < PATCH_SUPEE-6788-ed1.txt > PATCH_SUPEE-6788-ed1-dry-run.log


Analysez le fichier log pour voir d'éventuelles difficultés. Si tout va bien tapez :
Code :


patch -p0 -b -z .~ORG-6788 < PATCH_SUPEE-6788-ed1.txt > PATCH_SUPEE-6788-ed1.log



Vos fichiers sont patchés, les originaux sont conservés avec l'extension ~ORG-6788 (à adapter). Les éventuels fichiers créés par le patch le sont dans leur arborescence, dans ce cas les originaux sont vides évidemment.
Vous pouvez analyser la différence entre original et fichier patché par un utilitaire comme winmerge : winmerge.org/.
Les fichiers sont applicables facilement par FTP sur un serveur de DEV pour test ou, après validation sur site de production.
L'encombrement est minimal sur votre disque local.

Enjoy ! mais surtout n'oubliez pas de remplacer les § par des anti slashes !!!

C'est plus long à écrire qu'à faire...
 
Dernière édition: 26/01/16 à  07:13 Par zuiko.
Souvent support de mes exemples et conseils cette mercerie en ligne aux produits pro, au thème devenu responsive mobile en avril 2015.
L'administrateur a désactivé l'accès public en écriture.
#74481
Natouchka
Expert Boarder
Messages: 138
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Féminin Savour Vap Date anniversaire: 14/10

Re:[TUTO] Comment fabriquer les fichiers complets en local à partir d'un patch Magento officiel

Il y a 6 Mois, 1 Semaine
Karma: 1  
Bonjour,

Chouette tuto, c'est exactement ce qu'il me fallait, car je n'ai pas trouvé la version qu'il me fallait pour un patch à installer sans ssh.

Bref, j'ai tout suivi à la lettre (enfin c'est ce que je croyais), mais j'ai un soucis sur la fin, au moment de lancer le script dans la console windows.

J'ai un message d'erreur qui me dit "commande inconnue openànomconnexion"

Je ne comprend pas ou j'ai pu me tromper.

Merci

----------------
edit

J'ai avancé un peu en changeant la commande open , par la commande :
open ftp://parametresdeconnexion (à récuperer directement dans winscp)

Mais la suite ne marche pas non plus, j'ai commande inconnue aussi pour option et même pour cd.
Je continue à chercher.
 
Dernière édition: 17/05/18 à  09:39 Par Natouchka.
L'administrateur a désactivé l'accès public en écriture.
#74482
zuiko
Moderator
Messages: 2867
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin

Re:[TUTO] Comment fabriquer les fichiers complets en local à partir d'un patch Magento officiel

Il y a 6 Mois
Karma: 85  
Le problème ne semble pas évident à première vue... et cela fait un bout de temps que je n'ai pas eu besoin de pratiquer moi-même à nouveau cette procédure.
Désolé et bon courage...
 
Souvent support de mes exemples et conseils cette mercerie en ligne aux produits pro, au thème devenu responsive mobile en avril 2015.
L'administrateur a désactivé l'accès public en écriture.
Revenir en hautPage: 1
Modérateur: Gabriiiel, ILOA, zuiko