Patch: Reversed or previously applied patch detected

Zsanna képe

Helló!

Select_or_other modult próbálom patchelni, de nem igazán akarja az igazságot. Ott akadtam el, hogy cmd-ben kiadom a parancsot, hogy a .patch patchelje a .module fájlt, de ilyen hibaüzenetet kapok:

Reversed or previously applied patch detected. Assume -R? [n] y
Hunk #1 succeed at 99
Hunk #2 failed at 204.
1 out of 2 hunks failed - saving rejects to file

Mit tudok vele tenni? Megcsinálja az új .module fájlt, de nem működik.

Köszi!

Zsanna

Drupal verzió: 
szantog képe

Ez könnyen előfordulhat, különösen régibbi patchnél, ilyenkor sajna marad a megfelelő részek soronkénti kikeresése és manual apply.
De leginkább gitet lenne érdemes használni patchelésre, nem a rendes patchet.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

nevergone képe

Jó a hagyományos megoldás is, egyszerűen annyi történt, hogy nem azt a verziót próbálod, amelyikkel a patch készült, és azóta olyan sok dolog változott a forrásban, hogy a patch program nem tudja pontosan kideríteni, hogy mit mire cseréljen.

Ilyenkor tényleg marad a patch kézi "befaragása". Megnyitod egy szövegszerkesztővel, és amelyik sok előtt "-" jel van, azt ki kell törölni, amelyik előtt pedig "+", azt hozzá kell adni, amelyik sor előtt pedig "@@" van, az mutatja, hogy a forrásban az adott résznek hányadik sor környékén kellene elhelyezkednie, itt egy példa hozzá: http://drupal.org/files/issues/1124708-invite-admin-fixes-2-D7.patch

0
0
Zsanna képe

Tehát ha van egy ilyenem:
@@ -197,10 +197,12 @@

Akkor az azt jelenti, hogy kiveszek a 197. sortól 10 sort és hozzáadok 12 új sort a patchből?
Ahol pedig simán egy - vagy + akkor azt kivonom vagy hozzáadom?

0
0
szantog képe

Nem egészen. Ha így lenne, nem kellene kézzel tologatni a patchet. :)
Szóval tulajdonképpen meg kell találni benne, hogy hol van a helye. És igen, elsőre mindenképpen a 197-es sor környékén kell megnézni, de az is lehet, hogy a forrás kódrészlet azóta már teljesen eltűnt/máshová került, szóval ehhez értelmezni kell a patchet.

A +/- os rész előtt van pár sor kódrészlet. Azt kell megkeresni az eredeti kódban. A -os sor helyére pedig azt beírni, ami előtt a + van.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

pp képe

Nem árt, ha az ember tisztába van azzal is, hogy az adott modul hogy működik.

Kéne az a verzió amihez a folt való. Értelmezni kell, hogy a folt mit változtatott, vagyis a működésbe hogyan szólt bele, majd ennek függvényében kell elvégezni a változtatásokat az új verziójú modulon, figyelembe véve az azóta történt változtatásokat. Mivel pusztán a változtatások ismerete nem mindig elégséges a megértéshez, ezért nem árt, ha a verziókezelőben meg lehet nézni, hogy miért történtek azok.

A végén lehet, hogy egy teljesen más megoldást kell választani, de természetesen, az is elképzelhető, hogy könnyedén orvosolható az adott probléma.

Mondjuk már évszázadokkal előrébb lennénk, ha a kérdés feltevője a foltot, és azt a verziót is megadta volna, amit foltozni akart, mert így picit nehéz érdemben válaszolni. Az issue-ról már nem is beszélnék, ami azt is leírná, hogy minek kell itt foltozgatni. Vagy ez csak egy olyan öncélú patchwork a magunk szórakoztatására? :)

pp

0
0
Zsanna képe

Sajnos a patch nélkül checkbox és a bevitt mező '0'-t ad ki, nem szedi ki az adatbázisból, de érdekes módon csak a checkbox+szöveges mezős megoldásnál csinálja.

Köszönöm a segítséget, megpróbálok okosan gondolkodni, és kézzel meghegeszteni.

Ha esetleg van ötletetek, mivel helyettesíthetném, azt megköszönném, mert ugye a gond az, hogy ha külön hozok létre checkboxot és a más választásra szövegmezőt, a viewsben nem fogom tudni összehozni, hogy egy mezőben listázza mindkettőt.

0
0