Drupal 7コアにカスタムパッチを適用する必要がありましたが、新しいマイナーアップグレードをロールオーバーした後、変更が上書きされると思います。
コアの新しいマイナーパッチにアップグレードした後でも(このパッチが、アップグレードするバージョンに適用されていない場合)、パッチを適用したフォルダーなどを作成して、変更を保存する方法はありますか?コアが動作し続けることを確認しますか?
通常は Drupal core をハッキングしないでください。ただし、いくつかの例外があります:
その場合は、パッチを適切に文書化し、理想的にはリポジトリに保管する必要があります(例:Drupal docroot level、Drupal core folder、または、そのための新しいpatches/
フォルダを作成します)。
次に、Drupalコアをアップグレードするたびに、これらのパッチを再度適用することを忘れないでください(これは、Drupalアップグレード手順の一部です)。
これを自動化するには、次の可能性があります。
drush
コマンドを使用してコアをアップグレードします(例:スクリプトの一部として):
drush -y up drupal
find . -name "*.patch" -depth 1 -print -exec sh -c "patch -p1 <'{}'" ';'
drush
makeを使用します。例:
.make
ファイル `(参照: 完全な例drupal-org.makeファイル )
api = 2
core = 7.x
projects[drupal][patch][] = http://drupal.org/files/issues/992540-3-reset_flood_limit_on_password_reset-drush.patch
projects[drupal][patch][] = http://drupal.org/files/issues/object_conversion_menu_router_build-972536-1.patch
YAMLファイル(参照: examples/example.make.yml )
core: "7.x"
api: 2
projects:
drupal:
version: ~
patch:
- "https://www.drupal.org/files/issues/add_a_startup-1543858-30.patch"
Makeファイルで作業していない場合でも、Drupalコアファイルを空のフォルダーにダウンロードできます。これにより、パッチファイルが自動的に適用されます。ユニットテストを実行して、生成されたファイルを置き換えることを検討してください。 Drupalコアインスタンスに。
Drupal docrootで手動でアップグレードおよびパッチを適用:
curl https://ftp.drupal.org/files/projects/drupal-7.4?.tar.gz | tar xvf - --strip-components=1
patch -p1 < add_a_startup-1543858-30.patch
ベストプラクティスは、元のコアにパッチを適用する必要のない機能を実装する方法を見つけることです。あなたは読んでみるべきです- なぜコアをハックしないのですか?
とにかく、パッチでDrupalコアを維持したい場合(または必要な場合)は、このプロジェクトのいずれかを使用してパッチを管理できます。
このプロジェクトは、次の問題の解決を目指しています。
- プロジェクトに適用したパッチを文書化するにはどうすればよいですか?
- すべてのパッチを手動でチェックせずに、どのパッチが適用されているかどうかを確実に知るには?
- モジュールの更新をダウンロードした後でパッチを再適用する必要があることをどのように思い出させることができますか?
Drupalでのパッチ管理に役立つDrushツール。パッチ適用とモジュールのアップグレードに役立ちます。