Нужна устанавливалка патчей / решение: diff/patch
Модератор: 4epT
- piroJOKE
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Нужна устанавливалка патчей / решение: diff/patch
"Нужна устанавливалка патчей исходников, желательно на Перле."
Подробности:
Патчить чужой продукт, и пускать его "в оборот" дальше - плохая идея.
Именно поэтому наш дистрибутив представляет собой почти (не совсем) чистый слепок оригинальной OpenKore SVN.
Однако, иногда нужно распространять патчи.
Как бы нам так сделать, чтобы некий модуль/утилита, после запуска скрипта/батника подхватит лежащие рядом diff-ы (не обязательно стандартного формата), и внес их в исходники?
Какие-нибудь идеи есть?
_________________
(позже: изменил заголовок темы)
Подробности:
Патчить чужой продукт, и пускать его "в оборот" дальше - плохая идея.
Именно поэтому наш дистрибутив представляет собой почти (не совсем) чистый слепок оригинальной OpenKore SVN.
Однако, иногда нужно распространять патчи.
Как бы нам так сделать, чтобы некий модуль/утилита, после запуска скрипта/батника подхватит лежащие рядом diff-ы (не обязательно стандартного формата), и внес их в исходники?
Какие-нибудь идеи есть?
_________________
(позже: изменил заголовок темы)
Последний раз редактировалось piroJOKE Пт июн 08, 2007 9:12 pm, всего редактировалось 1 раз.
Универсальный обход кустарных антибот-защит:
xKore 1 -- $20
xKore 1 -- $20
- piroJOKE
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Мда.... насчет "на перле", это я пожалуй прогнал, он ведь и вправду не у всех есть.
* * *
А вот с patch'ем у меня проблемы.
Скачал эти, "нативные" UnxUtils - так в них patch какой-то шибанутый. Если его запустить без параметров - просто висит, по Ctrl-C выходит; и patch -i мойфайл.patch тоже самое.
Может у кого есть живая версия этой команды?...
* * *
А diff - жесть!!!
Я с ним в чистом виде раньше не работал, но это круто, это именно то, что нужно. Натравливаешь его на каталоги - и получаешь единый .patch для всех файлов - это как раз ОНО.
Пример: diff -U 2 -r dir1 dir2 > мойпатч.patch
Результат:
Ага! Хоть patch без параметров и ведет себя странно, тем не менее - он работает. Короче, отлично. Теперь заживем, как белые люди!
Применить патч: patch -i мойпатч.patch -p0
Jerry - большое спасибо за сцылку!

ЗЫ: Как любят говорить нупы - "тему можно закрывать!"

* * *
А вот с patch'ем у меня проблемы.


* * *
А diff - жесть!!!


Пример: 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 без параметров и ведет себя странно, тем не менее - он работает. Короче, отлично. Теперь заживем, как белые люди!



Применить патч: patch -i мойпатч.patch -p0
Jerry - большое спасибо за сцылку!



ЗЫ: Как любят говорить нупы - "тему можно закрывать!"

обычно юзают так
patch -p0 <patchfile
т.е. патч по умолчанию читает ввод с stdin
patch -p0 <patchfile
т.е. патч по умолчанию читает ввод с stdin
Универсальный обход кустарных антибот-защит:
xKore 1 -- $20
xKore 1 -- $20
- piroJOKE
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Хех, так я ж -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
- 4epT
- macro-маньячина
- Сообщения: 2795
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
- Контактная информация:
Цветную менюшку сделать не удалось, но по оформлению круто получилось..
Только для выбора пункта меню, необходимо будет прикладывать файлик Choice.com (5кБ).
Можно Пачт запихать в самораспаковывающийся архивчиГ ну чтобы он в темп распаковался выполнил своё дело и стёрся..
..ну не мне вас учить.
ЗЫ: у меня менюшка на загрузочной дискетке сделана ещё и в цвете, а вот в винде чёт "цвета" не понимает. Там синий цвет состоял из символов: [34;1m (квадратик это на самом деле стрелоска влево)
Только для выбора пункта меню, необходимо будет прикладывать файлик Choice.com (5кБ).
Можно Пачт запихать в самораспаковывающийся архивчиГ ну чтобы он в темп распаковался выполнил своё дело и стёрся..
..ну не мне вас учить.
ЗЫ: у меня менюшка на загрузочной дискетке сделана ещё и в цвете, а вот в винде чёт "цвета" не понимает. Там синий цвет состоял из символов: [34;1m (квадратик это на самом деле стрелоска влево)
- Вложения
-
- вот как выглядит
- Patch1.jpg (12.25 КБ) 2245 просмотров
-
- Patch.rar
- "менюнка" для патча
- (3.57 КБ) 214 скачиваний
- piroJOKE
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Это Esc-последовательности, они под чистым DOSом тоже не держатся. Их держал драйвер ansi.sys.цвет состоял из символов: [34;1m
(Дополнение: коллекция ansi-графики: http://ansiart.org.ua/gallery.php?folder=1
Вот, всё думаю наш комментарий в дистрибутиве "раскрасить", да ноги не доходят. Да, WinRAR это понимает!)
PS: На рамочки наверно забъем... Имхо, это не тот случай, когда они нужны. Хотя... посмотрим.