9

主に、この質問は Magento 2 を使用した git に固有のものです。Magento 2 プロジェクトが動作しており、github リポジトリを使用して拡張機能をインストールしました - https://github.com/Adyen/adyen-magento2

私の現在の状況では、その拡張機能をデバッグし、リモート サーバーをチェックする必要があります。私はそのリポジトリをフォークし、cc_debug.patch ファイルなどのパッチを作成しました。これで、そのパッチをローカル サーバーのルート ディレクトリに追加しました。次に、それを使用してパッチを実行するgit apply --apply --directory=vendor/adyen/module-payment/ cc_debug.patchと、トリックが実行され、ベンダー ディレクトリの下のファイルが変更されます。変更をレポにプッシュしましたが、デプロイ スクリプトにより、そのファイルはリモート サーバーに移動されました。

今、私はリモートサーバーを介した読み取りアクセスのみを持っており、初期化された .git はありません。リモート サーバー経由でパッチを適用すると、確実に実行されますが、次にプッシュすると、展開スクリプト ベンダーが再生成され、パッチによって適用された変更が失われます。私が知っているように、ここにフックがいくつかありますが、フックに関する知識が不足しています。

以下のような git ローカル リポジトリにデプロイ後のフックを作成する必要があると思います。

#!/bin/sh

patchfile = "cc_debug.patch"
patchingdirectory = "vendor/adyen/module-payment/"
if [ -f "$patchfile" ]
then
    git apply --apply --directory=$patchingdirectory $patchfile
fi

今、私はそのフックをリモートレポにプッシュすることはできません(初期化さえされていない)ので、この解決策はうまくいきません。または、更新後はリモートに固有のものであることを知っているので(間違っている場合は修正してください)、このフックによりリモートサーバー上で変更が実行されると推測していますが、別のローカルマシンで再度クローンを作成する場合は、展開後のパッチを再度作成するため、これは理想的なケースではありません。

展開スクリプトが実行されるたびにパッチを適用するための解決策は何ですか? [注: デプロイメント スクリプトは、Magento が github 経由で提供する Webhook によって実行されるため、私の手元にはありません。したがって、パッチを適用する必要がある Webhook が必要であると想定していますが、これもまた私の知識不足です。] 誰かが私と同じ状況にあると確信しています。私を案内してください。ティア。

4

2 に答える 2

1

最後に、ビルド フックを追加できるエントリ ポイントを見つけました。Magento 2 ディレクトリのルートで .magento.app.yaml を変更し、以下のようにビルド フックを追加しました。

hooks:
# We run build hooks before your application has been packaged.
build: |
    php ./bin/magento magento-cloud:build
    patch -p1 --directory=vendor/adyen/module-payment/ < cc_debug.patch #This is the line I have added.
于 2016-09-14T11:17:57.743 に答える
0

http://github.com/cweagans/composer-patchesのようなコンポーザ プラグインを使用してパッチを適用することもできます。私はこれを自分で使用して、メインライン リリースにまだ入っていないコア パッチを選択して適用しています。

于 2016-09-08T19:20:24.593 に答える