Puncte:1

Cum țintiți versiunea specifică a corecției de solicitare de îmbinare bazată pe furcă (MR).

drapel br

Actualizez nucleul de la 9.1.7 la 9.2.5, cu toate acestea, există un patch pe care nu știu cum să fac upgrade.

Aceasta este problema relativă. Fișierul 2897638-48.plastic este utilizat în prezent. Între timp, munca patch-ului continuă și a fost integrată în sistemul „cerere de îmbinare bazată pe furcă (MR)”.

Am deschis o problemă în trecut despre utilizarea generală a sistemului MR, citește Aceasta și documentația site-ului Drupal, așa că cel puțin știu cum să obțin cel mai recent fișier de corecție. Cu toate acestea, nu se aplică, pentru că presupun că a fost țintă pentru 9.3 versiune.

Citind lista de comisioane Aș dori să încerc să instalez patch-ul la commit eaa43b0c10c6fff8595d72d23c0f40a028bf0a71 („Rămăsuri de curățare”), pentru că mi se pare că este ultima înainte de trecerea la ramura 9.3.

Cu toate acestea, nu știu dacă și cum pot obține fișierul .patch al acelei versiuni specifice.

Puncte:2
drapel nr

Există mai multe modalități de a aplica un patch unic la un proiect PHP bazat pe Composer. Modul clasic este de a folosi cweagans/compozitor-petice, care este modul în care ați învățat.

Acest articol explică în detaliu cum să folosiți Composer Patch-uri pentru a corela core Drupal.

Este posibil să puteți utiliza această metodă pentru a aplica acest plasture, care este abordarea recomandată de @catch in acest comentariu, prin includerea acestuia în dvs compozitor.json:

    „extra”: {
      „activare-patching”: adevărat,
        „patch-uri”: {
          „drupal/core”: {
            „Permiteți configurarea identificatorilor de sortare expuși pentru Vizualizări”: „https://git.drupalcode.org/project/drupal/-/merge_requests/54.diff”
          }

După cum menționează @catch:

@Giuseppe87 poți folosi https://git.drupalcode.org/project/drupal/-/merge_requests/54.diff - deși pentru a obține un patch stabil de aplicat, cel mai bine este să îl descărcați într-un director /patches din baza de cod și apoi să adăugați calea locală a corecțiilor la compozitor.

Pentru a urma aceste instrucțiuni, deschideți un terminal și CD în directorul rădăcină al proiectului Drupal 9.2, apoi executați următoarele comenzi:

$ patch-uri mkdir
$ patch-uri cd
$ wget https://git.drupalcode.org/project/drupal/-/merge_requests/54.diff
$ mv 54.diff configure-views-exposed-sort-identifiers.patch

Pentru a utiliza fișierul de corecție local în proiectul dvs., mai degrabă decât patch-ul găzduit de la distanță pe Drupal.org, dvs. compozitor.json ar arata asa:

    „extra”: {
      „activare-patching”: adevărat,
        „patch-uri”: {
          „drupal/core”: {
            „Permiteți configurarea identificatorilor de sortare expuși a vizualizărilor”: „patches/configure-views-exposed-sort-identifiers.patch”
          }

Utilizarea unui fișier local este considerată cea mai bună practică aici, deoarece are unele avantaje față de utilizarea unui fișier la distanță. Este atât mai sigur, cât și mai eficient.

Există o altă metodă, relativ nouă, de a aplica patch-uri prin deschiderea unui Emite Furk iar răspunsul meu inițial a recomandat acea metodă, dar nu este necesar aici.

EDITAȚI | ×: După ce ați citit comentariile de mai jos, se pare că problema dvs. este aceea !54 nu a fost niciodată aplicată la ramura 9.2 înainte de rebazare.

Revenind la MR pe GitHub, puteți anula ultimele două comiteri alegând „Versiunea 9” a MR:

Versiunea 9 a Solicitarii de fuziune 54

Dar chiar și atunci, ținta este setată la 9.3 și nu este clar cum să o schimbi folosind interfața de utilizare bazată pe web.

Va trebui să urmați Instrucțiuni Git pentru a clona nucleul Drupal într-un mediu de dezvoltare locală:

$ git clone https://git.drupalcode.org/project/drupal.git
$ cd drupal

Apoi, reveniți la Coada de probleme și uitați-vă la instrucțiunile pentru a verifica ramura pentru o furculiță de probleme:

Instrucțiuni pentru a verifica sucursala pentru un Issue Fork

$ git remote add drupal-2897638 [email protected]:issue/drupal-2897638.git
$ git fetch drupal-2897638

Consultați și ramura 9.2.x:

$ git checkout -b '9.2.x' --track drupal-2897638/'9.2.x'

Acum, doriți să generați o diferență între starea proiectului la commit eaa43b0c si 9.2.x ramura:

$ git checkout eaa43b0c
$ git diff drupal-2897638/9.2.x > configure-views-exposed-sort-identifiers.patch

Aceasta va genera un patch între commit-ul pe care l-ați identificat și ramura 9.2.x.

Cu toate acestea, s-ar putea să nu fie ceea ce îți dorești. Patch-ul generat de această metodă are mai mult de 230.000 de linii de cod:

$ wc -l configure-views-exposed-sort-identifiers.patch                    
230134 configure-views-exposed-sort-identifiers.patch

Este posibil ca git commit-ul pe care l-ați identificat să se bazeze întotdeauna pe ramura 9.3.x. Se pare că mai este de făcut pentru a recrea munca esențială pentru acest patch și a o aplica curat pe ramura 9.x.

Este greu de spus cu siguranță, pentru că eaa43b0c este deja cu 93.000 de linii de cod înainte de ramura 9.3.x:

$ git dif 9.3.x |wc -l
93794

Este ușor să iei de la sine înțeles câtă muncă depun oamenii pentru acest software open source pe care ne bazăm cu toții. Dacă aveți nevoie de funcționalitatea furnizată de acest patch, cel mai simplu mod de a o obține va fi să faceți upgrade proiectului Drupal la ramura 9.3.x puțin mai devreme decât ați fi preferat să faceți acest lucru. Apoi patch-ul se va aplica curat și nu va trebui să înțelegeți acele 93.000 de linii de cod.

O ultimă notă - diferența generată de Merge Request 54 este mai mică de 1000 de linii de cod:

$ wc -l 54.dif                                                          
936 54.dif

S-ar putea să puteți verifica ramura 9.x și să aplicați fiecare dintre aceste 936 modificări manual pentru a genera fișierul de corecție în local. Ar fi încă multă muncă, dar poate mai puțină decât unele dintre celelalte opțiuni.

Aceasta nu este o situație comună; majoritatea Composer Patch-uri sunt mai mici decât acest monstru după ordine de mărime.

Noroc!

Giuseppe avatar
drapel br
scuze, răspunsul tău nu este clar pentru mine: cum pot aplica patch-ul pe ramura specifică, dacă nu am fișierul pentru versiunea respectivă?
hotwebmatter avatar
drapel nr
@Giuseppe Mi-am actualizat răspunsul. Anunță-mă dacă funcționează pentru tine!
Giuseppe avatar
drapel br
Vă mulțumesc pentru răspunsul detaliat, dar nu răspunde la problema mea. Știam deja cum să aplic patch-ul la „https://git.drupalcode.org/project/drupal/-/merge_requests/54.diff”, deoarece am făcut legătura la întrebarea inițială. Problema este că fișierul funcționează cu `9.3`, trebuie să-l fac să funcționeze cu `9.2` și nu știu cum (sau chiar dacă este posibil) să introduc în cererea de îmbinare fișierul care a existat cel puțin la un moment dat. compatibil cu acea versiune.
hotwebmatter avatar
drapel nr
@Giuseppe În acest caz, aveți două opțiuni: puteți deschide o nouă [Issue Fork](https://www.drupal.org/project/drupalorg/issues/3152637) și puteți crea o solicitare de îmbinare cu 9.2 ca ramură părinte , sau puteți (poate mai simplu) `git clona` depozitul și folosi `git diff` pentru a genera fișierul corect de corecție. Nu am timp să-mi actualizez răspunsul acum, dar s-ar putea să o fac mai târziu. Adevărata ta problemă este că acest patch este atât de mare, încât este foarte greu de revizuit.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.