Нужна устанавливалка патчей / решение: diff/patch

Разработка новых функций.

Модератор: 4epT

Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Нужна устанавливалка патчей / решение: diff/patch

Сообщение piroJOKE »

"Нужна устанавливалка патчей исходников, желательно на Перле."

Подробности:

Патчить чужой продукт, и пускать его "в оборот" дальше - плохая идея.
Именно поэтому наш дистрибутив представляет собой почти (не совсем) чистый слепок оригинальной OpenKore SVN.

Однако, иногда нужно распространять патчи.

Как бы нам так сделать, чтобы некий модуль/утилита, после запуска скрипта/батника подхватит лежащие рядом diff-ы (не обязательно стандартного формата), и внес их в исходники?

Какие-нибудь идеи есть?

_________________

(позже: изменил заголовок темы)
Последний раз редактировалось piroJOKE Пт июн 08, 2007 9:12 pm, всего редактировалось 1 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

Сообщение Jerry »

ээ сам diff ?
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Непонятный вопрос. :( diff - wtf в данном случае?
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

Сообщение Jerry »

ои, то есть patch
Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

Сообщение Jerry »

Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

если, чтоб патчить опенкор, то зачем на перле?
это наипростейшая программа, реализуема легко и на дельфи.
прога ищет в текстовом файле определёный фрагмент и заменяет его другим куском, тоесть патчем.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Мда.... насчет "на перле", это я пожалуй прогнал, он ведь и вправду не у всех есть. :(

* * *

А вот с patch'ем у меня проблемы. :cry: Скачал эти, "нативные" UnxUtils - так в них patch какой-то шибанутый. Если его запустить без параметров - просто висит, по Ctrl-C выходит; и patch -i мойфайл.patch тоже самое. :cry: Может у кого есть живая версия этой команды?...

* * *

А diff - жесть!!! 8) Я с ним в чистом виде раньше не работал, но это круто, это именно то, что нужно. Натравливаешь его на каталоги - и получаешь единый .patch для всех файлов - это как раз ОНО. :Yahoo!:

Пример: diff -U 2 -r dir1 dir2 > мойпатч.patch
Результат:
diff -U 2 -r dir1\aba\otchot.txt dir2\aba\otchot.txt
--- dir1\aba\otchot.txt Fri Jun 08 20:39:18 2007
+++ dir2\aba\otchot.txt Fri Jun 08 20:39:12 2007
@@ -1,2 +1,7 @@
bla bla bla
-bla bla bla!!!
+bla bla bla
+megablast
+cooooooool
+suxxx!
+end
+
* * *

Ага! Хоть patch без параметров и ведет себя странно, тем не менее - он работает. Короче, отлично. Теперь заживем, как белые люди! :Yahoo!: :Yahoo!: :Yahoo!:

Применить патч: patch -i мойпатч.patch -p0

Jerry - большое спасибо за сцылку! :) :Rose: :)

ЗЫ: Как любят говорить нупы - "тему можно закрывать!" :D
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

Сообщение Jerry »

обычно юзают так
patch -p0 <patchfile
т.е. патч по умолчанию читает ввод с stdin
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Хех, так я ж -i в твоей же доке вычитал. =) Но, бум знать.

* * *

Типо модный инсталлер (ггг)(ну правда оконного интерфейса нету, извините парти, это вам не Рио!):
@echo off
echo [1] Начало установки патча.
echo.
echo Этот патч установит новый модный апдейт. Типо тест.
echo bla-bla-bla, тут типо подробности для нупов lie-lie-lie.
echo.
echo Нажмите любую кнопку, чтобы началась установка патча,
echo или закройте это окно, чтобы оставить все без изменений.
echo.
pause
echo ----------------------------------------------------------------
utils\patch -i diff.patch -p0
if %errorlevel%==0 goto skipmat
echo.
echo *** ОШИБКА! Патч, вероятно, не установлен! ***
echo *** Пролистайте подробности, они выше. ***
:skipmat
echo.
echo [2] Патчинг завершен.
echo Нажмите любую кнопку для удаления .orig- и .rej- файлов,
echo или закройте это окно, если хотите оставить их на диске.
echo.
echo Справка:
echo .orig - файлы возникают, когда то, на что вы ставите патч,
echo немного отличается от ожидаемого - но патч всё-таки применен.
echo .rej - файлы возникают при попытке повторного внесения патча,
echo либо, когда то, на что ставится патч, имеет большие отличия
echo от ожидаемого - и патч не вносится.
echo Если патч прошел полностью успешно - эти файлы не создаются.
echo.
pause
echo ----------------------------------------------------------------
del /q /s ..\*.orig
del /q /s ..\*.rej
echo.
echo [3] Процесс завершен.
pause
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

Цветную менюшку сделать не удалось, но по оформлению круто получилось..
Только для выбора пункта меню, необходимо будет прикладывать файлик Choice.com (5кБ).
Можно Пачт запихать в самораспаковывающийся архивчиГ ну чтобы он в темп распаковался выполнил своё дело и стёрся..
..ну не мне вас учить.

ЗЫ: у меня менюшка на загрузочной дискетке сделана ещё и в цвете, а вот в винде чёт "цвета" не понимает. Там синий цвет состоял из символов: [34;1m (квадратик это на самом деле стрелоска влево)
Вложения
вот как выглядит
вот как выглядит
Patch1.jpg (12.25 КБ) 1982 просмотра
Patch.rar
&quot;менюнка&quot; для патча
(3.57 КБ) 165 скачиваний
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

цвет состоял из символов: [34;1m
Это Esc-последовательности, они под чистым DOSом тоже не держатся. Их держал драйвер ansi.sys.
(Дополнение: коллекция ansi-графики: http://ansiart.org.ua/gallery.php?folder=1
Вот, всё думаю наш комментарий в дистрибутиве "раскрасить", да ноги не доходят. Да, WinRAR это понимает!)

PS: На рамочки наверно забъем... Имхо, это не тот случай, когда они нужны. Хотя... посмотрим.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

ыыыыы, у меня так и написано в Config.sys: (Device=A:\ANSI.sys)
piroJOKE, рамочки - более читаемый вид
не :Grobovschik эту идею
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Уговорил, "откапывать" эту идею не буду! :lol:
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

это смайлик не той системы оказался :shock:
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

БЛЯ! До чего ж тупой этот патчер, это писец какой-то!

Ему, видите ли, не всё равно, пробелы или табуляторы у меня стоят в начале строки...
Более того. Я не могу поставить юниховый патч! Из-за отсутствующих CR+LF возникает "малформед бла бла бла". :evil:
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Ответить