LINUX.ORG.RU

GNU Patch

 , , ,


1

1

Порекомендуйте, пожалуйста, хорошую альтернативу документации изложенной в «man patch».



Последнее исправление: RRR1993 (всего исправлений: 2)

поиск по stackoverflow

anonymous
()

Исходники patch.

anonymous
()

Хочется какой-нибудь гайд типа Git Book

RRR1993
() автор топика
Ответ на: комментарий от RRR1993

Применяешь патч сгенерённый для файла с одним содержимым к файлу, где уже другое содержимое. Очевидно же.

anonymous
()
Ответ на: комментарий от RRR1993

Потому что не получается наложить кусок патча. Ты хочешь документацию от Капитана? Нет такой. Никто не думал что вычислительная техника будет использоваться тем кто не может 3 слова прочитать или 2 и 2 сложить.

slovazap ★★★★★
()
Последнее исправление: slovazap (всего исправлений: 1)
$ patch --verbose CEGLManager.cpp irrlicht-native_activity.patch 
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- irrlicht/source/Irrlicht/CEGLManager.cpp.orig	2018-06-10 16:58:11.357709173 +0200
|+++ irrlicht/source/Irrlicht/CEGLManager.cpp	2018-06-10 16:58:25.100709843 +0200
--------------------------
patching file CEGLManager.cpp
Using Plan A...
Hunk #1 FAILED at 9 (different line endings).
1 out of 1 hunk FAILED -- saving rejects to file CEGLManager.cpp.rej
done
RRR1993
() автор топика

И судя по od -c, patch ругается на дополнительный символ в конце 9-ой строки (\r)

RRR1993
() автор топика

Как заставить patch не заниматься излишними проверками? Оказывается, что в моём случае всё сводится к идиотской проверке на возврат каретки!

RRR1993
() автор топика
Ответ на: комментарий от anonymous
$ od -c CEGLManager.cpp
0000000   /   /       C   o   p   y   r   i   g   h   t       (   C   )
0000020       2   0   1   3       P   a   t   r   y   k       N   a   d
0000040   r   o   w   s   k   i  \r  \n   /   /       T   h   i   s    
0000060   f   i   l   e       i   s       p   a   r   t       o   f    
0000100   t   h   e       "   I   r   r   l   i   c   h   t       E   n
0000120   g   i   n   e   "   .  \r  \n   /   /       F   o   r       c
0000140   o   n   d   i   t   i   o   n   s       o   f       d   i   s
0000160   t   r   i   b   u   t   i   o   n       a   n   d       u   s
0000200   e   ,       s   e   e       c   o   p   y   r   i   g   h   t
0000220       n   o   t   i   c   e       i   n       I   r   r   l   i
0000240   c   h   t   .   h  \r  \n  \r  \n   #   i   n   c   l   u   d
0000260   e       "   C   E   G   L   M   a   n   a   g   e   r   .   h
0000300   "  \r  \n  \r  \n   #   i   f   d   e   f       _   I   R   R
0000320   _   C   O   M   P   I   L   E   _   W   I   T   H   _   E   G
0000340   L   _   M   A   N   A   G   E   R   _  \r  \n  \r  \n   #   i
0000360   n   c   l   u   d   e       "   i   r   r   S   t   r   i   n
0000400   g   .   h   "  \r  \n   #   i   n   c   l   u   d   e       "
0000420   o   s   .   h   "  \r  \n  \r  \n   n   a   m   e   s   p   a
0000440   c   e       i   r   r  \r  \n   {  \r  \n   n   a   m   e   s
0000460   p   a   c   e       v   i   d   e   o  \r  \n   {  \r  \n  \r
0000500  \n   C   E   G   L   M   a   n   a   g   e   r   :   :   C   E
0000520   G   L   M   a   n   a   g   e   r   (   )       :       I   C
0000540   o   n   t   e   x   t   M   a   n   a   g   e   r   (   )   ,
0000560       E   g   l   W   i   n   d   o   w   (   0   )   ,       E
0000600   g   l   D   i   s   p   l   a   y   (   E   G   L   _   N   O
0000620   _   D   I   S   P   L   A   Y   )   ,  \r  \n
RRR1993
() автор топика

Всё, разобрался!

https://stackoverflow.com/a/12865868

UPD. Виноваты оказывается самм разработчики Irrlicht, а автор патча просто удалил в своем локальном репозитории все эти возвраты кареток.

RRR1993
() автор топика
Ответ на: комментарий от RRR1993

Ну так чего ты сдулся?

За техподдержку в реальном времени ты мне не платил, так изволь сидеть и ждать когда мне будет удобно ответить.

У меня оно патчится без проблем и GNU'шным патчем, и BSD'шным, так что сдаётся мне это ты сам \r где-то кривыми руками понаставил.

#!/bin/sh

for patch in patch gpatch; do
    echo "===> $patch"
    rm -f CEGLManager.cpp irrlicht-native_activity.patch
    wget -qO CEGLManager.cpp https://paste.fedoraproject.org/paste/jFlyeB9Kp63-XiVf1Bkyew/raw
    wget -q https://raw.githubusercontent.com/minetest/minetest/master/build/android/patches/irrlicht-native_activity.patch
    $patch < irrlicht-native_activity.patch
done
===> patch
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- irrlicht/source/Irrlicht/CEGLManager.cpp.orig	2018-06-10 16:58:11.357709173 +0200
|+++ irrlicht/source/Irrlicht/CEGLManager.cpp	2018-06-10 16:58:25.100709843 +0200
--------------------------
Patching file CEGLManager.cpp using Plan A...
Hunk #1 succeeded at 9.
done
===> gpatch
patching file CEGLManager.cpp

Но да, такое бывает часто из-за уродов кодящих под виндой, так что dos2unix *.{h,cpp} часто решает проблему.

slovazap ★★★★★
()
Последнее исправление: slovazap (всего исправлений: 4)
Ответ на: комментарий от RRR1993

Я - нет, а вот разработчики Minetest - да.

Да вот нет.

% wget -qO- https://paste.fedoraproject.org/paste/jFlyeB9Kp63-XiVf1Bkyew/raw | od -c | grep '\\r' | wc -l
       0
slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Я лохонулся с источником. Fedora Pastebin съел все \r

После финального прогона твоей командой (огромное тебе спасибо за неё), получил следующее:

$ wget -qO- https://sourceforge.net/p/irrlicht/code/5150/tree/branches/ogl-es/source/Irrlicht/CEGLManager.cpp?format=raw | od -c | grep '\\r' | wc -l
297
RRR1993
() автор топика
Ответ на: комментарий от slovazap

Прости меня пожалуйста и спасибо за советы.

RRR1993
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.