Có nhiều cách để áp dụng bản vá một lần cho dự án PHP dựa trên Composer. Cách cổ điển là sử dụng cweagans/composer-patches
, đó là cách bạn đã học.
bài viết này giải thích chi tiết cách sử dụng Composer Patches để vá lõi Drupal.
Bạn có thể sử dụng phương pháp này để áp dụng bản vá này, đây là cách tiếp cận được đề xuất bởi @catch trong bình luận này, bằng cách bao gồm điều này trong của bạn nhà soạn nhạc.json
:
"thêm": {
"bật bản vá": đúng,
"bản vá lỗi": {
"drupal/lõi": {
"Cho phép định cấu hình số nhận dạng sắp xếp hiển thị Chế độ xem": "https://git.drupalcode.org/project/drupal/-/merge_requests/54.diff"
}
Như @catch đề cập:
@ Giuseppe87 bạn có thể sử dụng https://git.drupalcode.org/project/drupal/-/merge_requests/54.diff - mặc dù để áp dụng một bản vá ổn định, tốt nhất bạn nên tải bản vá này xuống thư mục /patches trong cơ sở mã của bạn, sau đó thêm đường dẫn bản vá cục bộ vào tệp composer.
Để làm theo các hướng dẫn này, hãy mở Terminal và đĩa CD
vào thư mục gốc dự án của dự án Drupal 9.2 của bạn, sau đó thực hiện các lệnh sau:
bản vá $ mkdir
bản vá $ cd
$ wget https://git.drupalcode.org/project/drupal/-/merge_requests/54.diff
$ mv 54.diff configure-views-exposed-sort-identifiers.patch
Để sử dụng tệp bản vá cục bộ trong dự án của bạn thay vì bản vá được lưu trữ từ xa trên Drupal.org, bạn nhà soạn nhạc.json
sẽ trông như thế này:
"thêm": {
"bật bản vá": đúng,
"bản vá lỗi": {
"drupal/lõi": {
"Cho phép định cấu hình số nhận dạng sắp xếp tiếp xúc với Chế độ xem": "patches/configure-views-exposed-sort-identifiers.patch"
}
Sử dụng tệp cục bộ được coi là cách thực hành tốt nhất ở đây, vì nó có một số lợi thế so với sử dụng tệp từ xa. Nó vừa an toàn hơn vừa hiệu quả hơn.
Có một phương pháp khác, tương đối mới, để áp dụng các bản vá bằng cách mở một Phát hành ngã ba và câu trả lời ban đầu của tôi đã đề xuất phương pháp đó, nhưng không cần thiết ở đây.
CHỈNH SỬA: Sau khi đọc ý kiến của bạn dưới đây, có vẻ như vấn đề của bạn là !54 chưa bao giờ được áp dụng cho nhánh 9.2 trước khi khởi động lại.
Quay lại MR trên GitHub, bạn có thể khôi phục hai lần xác nhận cuối cùng bằng cách chọn "Phiên bản 9" của MR:
Nhưng ngay cả khi đó, mục tiêu được đặt thành 9,3 và không rõ cách thay đổi mục tiêu đó bằng giao diện người dùng dựa trên web.
Bạn sẽ cần phải làm theo Hướng dẫn Git để sao chép lõi Drupal vào môi trường phát triển cục bộ:
$ git clone https://git.drupalcode.org/project/drupal.git
$ cd drupal
Sau đó, quay lại Hàng đợi phát hành của bạn và xem hướng dẫn để kiểm tra chi nhánh cho một Phân nhánh phát hành:
$ git remote add drupal-2897638 [email protected]:issue/drupal-2897638.git
$ git lấy drupal-2897638
Ngoài ra, hãy kiểm tra nhánh 9.2.x:
$ git checkout -b '9.2.x' --track drupal-2897638/'9.2.x'
Bây giờ, bạn muốn tạo sự khác biệt giữa trạng thái của dự án khi cam kết eaa43b0c
và 9.2.x
chi nhánh:
$ git thanh toán eaa43b0c
$ git diff drupal-2897638/9.2.x > configure-views-exposed-sort-identifiers.patch
Điều này sẽ tạo ra một bản vá giữa cam kết mà bạn đã xác định và nhánh 9.2.x.
Tuy nhiên, đây có thể vẫn không phải là những gì bạn muốn. Bản vá được tạo bởi phương pháp này là hơn 230.000 dòng mã:
$ wc -l configure-views-exposed-sort-identifiers.patch
230134 configure-views-exposed-sort-identifiers.patch
Có thể cam kết git mà bạn đã xác định luôn dựa trên nhánh 9.3.x. Có vẻ như còn nhiều việc phải làm để tạo lại công việc thiết yếu cho bản vá lỗi này và áp dụng nó một cách rõ ràng cho nhánh 9.x.
Thật khó để nói chắc chắn, bởi vì eaa43b0c
đã có 93.000 dòng mã trước nhánh 9.3.x:
$ git diff 9.3.x |wc -l
93794
Thật dễ dàng để chấp nhận bao nhiêu công việc mà mọi người đã bỏ ra cho phần mềm mã nguồn mở này mà tất cả chúng ta đều dựa vào. Nếu bạn yêu cầu chức năng được cung cấp bởi bản vá này, cách dễ nhất để có được nó là nâng cấp dự án Drupal của bạn lên nhánh 9.3.x sớm hơn một chút so với mong muốn của bạn. Sau đó, bản vá sẽ được áp dụng rõ ràng và bạn sẽ không cần phải hiểu 93.000 dòng mã đó.
Một lưu ý cuối cùng -- khác biệt được tạo bởi Yêu cầu hợp nhất 54 là ít hơn 1000 dòng mã:
$ wc -l 54.diff
936 54.diff
Bạn có thể kiểm tra nhánh 9.x và áp dụng thủ công từng thay đổi trong số 936 thay đổi đó để tạo tệp vá tại địa phương của bạn. Nó vẫn còn rất nhiều công việc, nhưng có thể ít công việc hơn một số tùy chọn khác.
Đây không phải là một tình huống phổ biến; hầu hết các Bản vá lỗi của Nhà soạn nhạc đều nhỏ hơn con quái vật này theo độ lớn.
Chúc may mắn!