web-dev-qa-db-fra.com

Comment installer un fichier patch?

J'essayais de google la méthode pour installer un fichier de correctif, mais les résultats reviennent toujours comme "problèmes rencontrés lors du correctif", ce qui n'est pas ce que je recherche.

Je me demandais comment utiliser drush pour installer un fichier patch?

Plus précisément, je rencontre actuellement un Drupal pour le module Facebook issue , à propos de la variable q.

L'une des réponses suggère d'installer un fichier correctif. Comment installer ce fichier correctif à partir de la ligne de commande?

4
He Hui

Les instructions sur la façon d'appliquer un patch sont données, pour ce module, sur http://drupal.org/project/fb/git-instructions .

Tout d'abord, les correctifs git peuvent être appliqués à un référentiel git que vous devez cloner localement, ce qui signifie que vous devez exécuter la commande suivante:

git clone --recursive --branch master http://git.drupal.org/project/fb.git

Ensuite, vous copiez le correctif dans le répertoire fb créé à partir de la commande précédente et exécutez le suivant:

cd fb
git apply -v fb_stream.admin_.inc_.patch

Une fois le patch appliqué, vous le supprimez.

rm  fb_stream.admin_.inc_.patch

Cela suppose que le correctif est appliqué à l'instantané de développement. Si ce n'est pas le cas, quelqu'un doit fournir un correctif pour l'instantané de développement.

Quoi qu'il en soit, le patch ne s'applique pas. Si vous essayez de l'appliquer, vous obtiendrez l'erreur suivante:

Vérification du correctif Users/johnrobens/Downloads/fb/fb_stream.admin.inc ... Erreur: Users/johnrobens/Downloads/fb/fb_stream.admin.inc: aucun fichier ou répertoire de ce type

Vous devez remplacer le patch par le suivant, pour éviter cette erreur.

--- fb_stream.admin.inc
+++ fb_stream.admin.inc
@@ -1,5 +1,6 @@
 <?php

+
 /**
  * Form callback for general settings.
  */
@@ -19,7 +20,8 @@
             '%user_name' => $from['name'],
             '%token' => $token,
           )));
-    } catch (Exception $e) {
+    }
+    catch (Exception $e) {
       fb_log_exception($e, t('Unable to query graph with fb_stream token.'));
       drupal_set_message(t('There was an error using the current access token, %token.  Consider generating a new token.', array(
             '%token' => $token,
@@ -29,7 +31,7 @@

   if (!empty($_REQUEST['code']) && empty($_POST)) {
     // Send user to this URL after token is generated.
-    $redirect_uri = url(request_path(), array(
+    $redirect_uri = url($_REQUEST['q'], array(
       'absolute' => TRUE,
       'query' => array(
         'client_id' => $_REQUEST['client_id'],
@@ -59,7 +61,7 @@
   );
   foreach (fb_get_all_apps() as $fb_app) {
     // Send user to this URL after token is generated.
-    $redirect_uri = url(request_path(), array(
+    $redirect_uri = url($_REQUEST['q'], array(
       'absolute' => TRUE,
       'query' => array(
         'client_id' => $fb_app->id,
@@ -92,7 +94,7 @@
       'client_id' => $app_id,
       'client_secret' => $fb_app->secret,
       'code' => $code,
-      'redirect_uri' => $redirect_uri,
+                  'redirect_uri' =>$redirect_uri,
     ),
       ));
   $http = drupal_http_request($path);

Même si vous faites cela, vous obtiendrez l'erreur "le patch ne s'applique pas". J'ai essayé de l'appliquer à l'instantané de développement 7.x-3.x (la branche principale de git).

5
kiamlaluno

Voici une très bonne explication de application de correctifs avec git. Si vous n'avez pas installé git, il y a des liens vers des instructions pour différentes plates-formes ici .

Au-delà de cela, assurez-vous que vous corrigez la bonne version du code, sinon vous pourriez obtenir des erreurs lors de l'application du correctif.

Des informations plus générales sur git peuvent être trouvées dans le livre Pro Git .

1
splatio

Sans détails concernant votre environnement, les détails de correction seraient très difficiles à fournir et ne seraient probablement pas appropriés pour drupal.stackexchange.com. Drupal a un peu de documentation mais cela peut vous conduire dans la bonne direction.

http://drupal.org/patch/apply

Sous la forme la plus simple en utilisant le patch patch -p1 < path/file.patch ou si vous utilisez git git apply path/file.patch

0
Citricguy