2009-05-30 6 views
12

Je voudrais appliquer le correctif action_mailer mentionné dans ce fil mais je ne l'ai jamais appliqué un patch avant et je ne sais pas comment ces travaux: https://rails.lighthouseapp.com/projects/8994/tickets/2263Comment appliquez-vous un patch pour rubis sur des rails?

Mon action bijou mailer est ici:/opt/ruby -entreprise-1.8.6-20090421/lib/ruby ​​/ gems/1.8/gems/actionmailer-2.3.2

Je suppose que je dois aller à ce répertoire et exécuter la commande patch ... quelque chose comme ça?

cd /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/ 
wget https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 
patch < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 

Une chose que je ne suis pas vraiment clair est que le fichier patch fait référence à la « actionmailer » répertoire mais le mien est appelé « actionmailer-2.3.2 »

Répondre

11

En général, vous ne voulez pas pour patcher la source gemme elle-même. Vous voudrez probablement geler les gemmes en ${RAILS_ROOT}/vendor/rails, puis appliquer le correctif localement.

À partir de votre $ {} RAILS_ROOT dir, vider toutes vos gemmes rails en rails fournisseurs/

rake rails:freeze:gems 

Appliquer le patch

cd vendor/rails/ 
    patch -p1 < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 
+0

Salut Micholson, merci pour la réponse. Je suis d'accord sur le fait que vous voudriez normalement les supprimer, mais en raison de la nature de ce bug je voudrais le faire réparer dans toutes mes applications (et j'espère ne pas vérifier beaucoup plus de fichiers dans le contrôle de version). Je pourrais être capable de l'obtenir juste de ce que vous avez écrit bien - après avoir lu non l'option -p le problème de répertoire a plus de sens: http://linux.die.net/man/1/patch Cheers! –

7

réponse ci-dessus les œuvres de Micholson. Mais pour patcher la gemme réelle pour toutes les applications Rails (voir mon commentaire sur sa réponse) cela a fonctionné:

cd /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/actionmailer-2.3.2 
wget sudo wget https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 
sudo patch -p2 < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 
sudo rm 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch 

j'ai découvert, vous pouvez aussi inverser un patch avec R si quelque chose va mal. Je suis surpris que ce processus n'ait pas été mieux documenté quelque part. Espérons que cela apparaîtra dans les recherches de Google pour les personnes nouvelles à patcher comme moi.

+1

Il s'est avéré pour moi! Et je vous remercie. –

Questions connexes