Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
ВнизСоздание патчей. Найти похожие ветки
← →
Unsigned © (2006-01-27 00:21) [0]Здравствуйте. Разрабатываем софт, основная уeдитория которого – модемщики. Встал вопрос о создании обновлений. В общем как организовать создание патча? Под патчем подразумевается изменение багов и\или добавление функциональности проге а не изменение каких-то собственных ресурсов.
← →
Eraser © (2006-01-27 00:49) [1]
> Unsigned © (27.01.06 00:21)
есть спец. утилиты для создания патче, от InqSoft неплохой патчер есть, правда это больше для кряка предназначено, но можно и для мирных целей приспособить!
← →
Unsigned © (2006-01-27 00:54) [2]
> есть спец. утилиты для создания патче, от InqSoft неплохой
> патчер есть,
Хм,спасибо!Надо будет подумать над этим! А есть идеи как такие проги устроены?
← →
Eraser © (2006-01-27 01:17) [3]
> Unsigned © (27.01.06 00:54) [2]
> А есть идеи как такие проги устроены?
Ну та прога нечто большее чем просто патчер.
А патчер просто сравнивает 2 файла, различия заности в файл.
<позиция в файле><размер данных><данные> и т.д.
← →
PAVIA © (2006-01-27 01:22) [4]Такие проги устроены тах определенные байты биты заминяют на другии. То место которое надо исправить. Допустим процедура с ошибкой. Ты должен обязательно создать процедуры такойже длины или около.В файле есть пустоты для выравнивания. Вот и заменяешь эту процедуру.
Еще нужно следить за контрольной суммой, если такая имеется.
А если ты хочешь добавления. То тут только замена одного файла на другой. Для этих целий программу драблят на модули чтобы меньше заменять.
Конечно ты можешь создать еще одну секцию кода в файле, но что это тебе даст?
← →
Unsigned © (2006-01-27 01:25) [5]2 PAVIA, Eraser.
То есть исходный файл и пропатченый должны быть одного размера? И потом просто сравниваю побайтово 2 файла и пишу в 3 по каким адресам менять байты?
← →
Eraser © (2006-01-27 01:42) [6]
> Unsigned © (27.01.06 01:25) [5]
нет, патчер действует не совсем так, как описал PAVIA © (27.01.06 01:22) [4].
Конечно патчер патчеру рознь, но по-моему тварение от InqSoft более интеллектуально работает, т.е. умеет определять, именно различия, короче учитывает несколько ньюансов, что делает патчи более компактынми.
Описывать эти ньюансы лень сейчас, уж извините :) и в двух словах не сформулируешь )
← →
PAVIA © (2006-01-27 01:53) [7]Дело не в том чтобы файлы были одного размера. А в том что если ты создашь двай файла и у тебя неожиданно пропадет байт из середины то заменять дебе придеться пол файла. А ведь тогда адресса процедур изменется поэтому и еще пол файла(гораздо меньше но во многих местах) переделовать.
Так что тут выхода два.
Первый Ты добавляешь в конец файла новую процедуру но всеравно меныть адресса вызовов, но это уже меньше.
Второй вариант просто перезапичываешь целиком файл.
← →
PAVIA © (2006-01-27 02:04) [8]Есть третий вариант Специально сохроняешь адресса процедур. И места от куда их вызывают. Тогда в патчере можно указать изменения в коректной процедуре, а патчер сам вычислит нужные изминения.
← →
Германн © (2006-01-27 02:19) [9]
> Unsigned © (27.01.06 00:21)
>
> Здравствуйте. Разрабатываем софт, основная уeдитория которого
> – модемщики. Встал вопрос о создании обновлений. В общем
> как организовать создание патча? Под патчем подразумевается
> изменение багов и\или добавление функциональности проге
> а не изменение каких-то собственных ресурсов.
>
Имхо тут в "винегрет" замешаны две, по идее разные сущности: обновления и патчи. Так вот сначала, имхо, стоит "отделить мух от котлет"! В чём главная суть сабжа? И, имхо, не стОит в очередной раз поминать диал-ап и т.п. Можно любую конкретную задачу решить так, что обновление ПО будет требовать минимальный траффик, имхо. Но в общем случае, на такие вопросы, полностью грамотных ответов нет. По крайней мере пока.
← →
Eraser © (2006-01-27 15:56) [10]
> PAVIA © (27.01.06 01:53) [7]
>
> Дело не в том чтобы файлы были одного размера. А в том что
> если ты создашь двай файла и у тебя неожиданно пропадет
> байт из середины то заменять дебе придеться пол файла. А
> ведь тогда адресса процедур изменется поэтому и еще пол
> файла(гораздо меньше но во многих местах) переделовать.
Примерно это я имел ввиду под ньюансами, которые хороший патчер учитывает, а адреса процедур и т.д патчеру феолетовы, т.к. ему вообще всё равно что патчить.
> и у тебя неожиданно пропадет байт из середины то заменять
> дебе придеться пол файла
хороший патчер определяет, что в середине отсутствует байт и просто прописывает в свой скрипт "удалить 1 байт там-то". "Спрограммировать" такое - не тривиальная задача, выполнимая.
> Германн © (27.01.06 02:19) [9]
> Так вот сначала, имхо, стоит "отделить мух от котлет"! В
> чём главная суть сабжа? И, имхо, не стОит в очередной раз
> поминать диал-ап и т.п. Можно любую конкретную задачу решить
> так, что обновление ПО будет требовать минимальный траффик,
> имхо. Но в общем случае, на такие вопросы, полностью грамотных
> ответов нет.
Я бы сказал что понятие ОБНОВЛЕНИЕ включает в себя понятие ПАТЧ. А разработать грамотную систему обновлений не так-то просто.... согласен.
← →
Германн © (2006-01-28 02:29) [11]
> Я бы сказал что понятие ОБНОВЛЕНИЕ включает в себя понятие
> ПАТЧ.
А я бы (по умолчанию) так не сказал бы! Имхо по моему видению, задачи патча - изменить некоторое количество байт в файле(ах) без перезаписи оного(ых) в целом!
← →
OldNaum © (2006-01-28 07:09) [12]лучший патч-мейкер, имхо, PatchFactory 3.xx, именно 3.хх - у него появился отличный контроль версий / компонентов, да и сделан он на славу. только вот ломанного нормально нигде нету, жаль ;) очень жаль...
← →
Yanis © (2006-01-28 09:25) [13]ByteKiller РУЛИТ!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c