1) Лепо ли давать ссылку на экзешник? ( Вот страница с описанием http://freeware.ru/program_prog_id_10001.html )
2) Что ты хочешь: поделиться программой, поделиться исходниками, получить отзывы?
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, rsdnLeon, Вы писали:
L>>Бесплатная программа создания патчей на русском языке L>>http://download.ware.ru:8080/win/10001_LitePatcher.exe L>>Специальные требования: .NET Framework 2.0
CS>TortoiseSVN это делает просто замечательно. CS>И бесплатная. И не надо .NET Framework 2.0
CS>Или ты сам LitePatcher этот писал?
Да, эту программу написал я. Необходима была бесплатная программа для создания патчей. Изучил этот вопрос в Интернете и оказалось что из подходящих бесплатных программ есть только PatchWiseFree. Под подходящими имею ввиду такие, которые бы сравнивали две директории с предыдущей и новой версиями приложений, с учетом подкаталогов и создавали на основе различий исполнимый файл патча. Т.е. если установить такой патч на предыдущую версию — получалась бы версия соответствующая новой. Но как оказалось PatchWiseFree находит измененные файлы и целиком пакует его в патч. Т.е. если изменился файл размером 1Мб, то в патч пойдет архив всего этого файла. И если он ужался всего в 2-3 раза, то патч получится довольно большого обьема. А если в этом файле всего 1 байт изменился ? В этом случае такой патч становится слишком тяжеловесным. Вот и пришлось написать свою патчеделку:
— анализируется вся структура подкаталгов указанных директорий;
— если файл или подкаталог удален, то в патч записывается соответствующая информация, какие объекты удалить;
— если файл или подкаталог новые, то их архивы полностью записываются в патч;
— если файл изменился, в нем определяются только изменившиеся участки и только они записываются в патч. Например, если в новой версии по отношению к предыдущей изменилось только несколько байт, то только эта информация уйдет в патч, который получится небольшого размера.
Насчет TortoiseSVN: эта программа служит для других целей. Это больше надстройка над CVS, т.е. для использования между разработчиками приложения в одной команде. Она НЕ предназначена для создания инсталяций обновлений приложений, которую
можно передать клиенту. Та же программа, которую предлагаю я, служит для использования между разработчиком приложения и клиентом пользователем этого приложения. Исправили пару багов — отправили клиенту удобную и небольшую по объему установку обновления.
Да, так было бы лучше
К>2) Что ты хочешь: поделиться программой, поделиться исходниками, получить отзывы?
Поделится программой
Re[3]: Патчи
От:
Аноним
Дата:
09.10.06 18:12
Оценка:
L>нет
Да. За исключением того что rsync заточен не ехешники получать с патчами а сразу апдейтить инкрементально. The rsync
remote-update protocol allows rsync to transfer just the differences between two sets of files across the network connection, using an efficient checksum-search algorithm described in the technical report that accompanies this package.
support for copying links, devices, owners, groups, and permissions
exclude and exclude-from options similar to GNU tar
a CVS exclude mode for ignoring the same files that CVS would ignore
can use any transparent remote shell, including ssh or rsh
does not require super-user privileges
pipelining of file transfers to minimize latency costs
support for anonymous or authenticated rsync daemons (ideal for mirroring)
Здравствуйте, Аноним, Вы писали:
L>>нет А>Да. За исключением того что rsync заточен не ехешники получать с патчами а сразу апдейтить инкрементально. The rsync
L>- анализируется вся структура подкаталгов указанных директорий; L>- если файл или подкаталог удален, то в патч записывается соответствующая информация, какие объекты удалить; L>- если файл или подкаталог новые, то их архивы полностью записываются в патч; L>- если файл изменился, в нем определяются только изменившиеся участки и только они записываются в патч. Например, если в новой версии по отношению к предыдущей изменилось только несколько байт, то только эта информация уйдет в патч, который получится небольшого размера.
Рассматривается ли ситуация, когда файл поменялся в длинне ?
Самое ведь гадкое — когда у 100Мб файла с ресурсами внутрь ВСТАВИЛИ 100 байт.
P.S. Встречал такой софт еще в 1997. Но не успел — фирма померла, страничка закрылась.
Здравствуйте, Nikolay_P_I, Вы писали:
N_P>Рассматривается ли ситуация, когда файл поменялся в длинне ?
Обязательно.
Это один из критериев, по которому определяется изменение файла. Если же файлы одинаковой длины, то сверяются их контрольные суммы (CRC).
N_P>Самое ведь гадкое — когда у 100Мб файла с ресурсами внутрь ВСТАВИЛИ 100 байт.
Если эти 100 байт добавлены в конец файла или они заменили другие 100 байт, то в патч войдут только эти 100 байт. Если же эти 100 байт вставлены где нибудь в середину файла и все там посдвигали, то в патч может войти больше информации.
Здравствуйте, rsdnLeon, Вы писали:
N_P>>Самое ведь гадкое — когда у 100Мб файла с ресурсами внутрь ВСТАВИЛИ 100 байт.
L>Если эти 100 байт добавлены в конец файла или они заменили другие 100 байт, то в патч войдут только эти 100 байт. Если же эти 100 байт вставлены где нибудь в середину файла и все там посдвигали, то в патч может войти больше информации.
Насколько больше ? В качестве примера — когда-то в гостях я видал пиратский Heroes of Might and Magic III (я-то подождал и лицензию купил, когда вышла) так тамошний файл ресурсов в 200Мб именно "раздвигался" со вставкой куска байт каким-то самопальным патчем при патченьи с версии 1.0 до 1.1.
Меня тогда эта технология заинтересовала, но фирма-производитель утилиты для патченья — уже умерла, я ее не нашел.
Здравствуйте, rsdnLeon, Вы писали:
L>Да, эту программу написал я. Необходима была бесплатная программа для создания патчей. Изучил этот вопрос в Интернете и оказалось что из подходящих бесплатных
L>приложения. Исправили пару багов — отправили клиенту удобную и небольшую по объему установку обновления.
Проверяет только по структуре каталогов или еще может углубляться внутрь архивов? Рассматирвается ли такой вариант?
Здравствуйте, V.Petrovski, Вы писали:
VP>Это "патчеделка" делает патчи только для программ каторые распостраняются через x-copy? VP>А как начет GAC, Regestry?
Программа патчит только файлы (+ удаляет, создает, в том числе и поддиректории), а создать файл на диске можно не только с помощью x-copy
Здравствуйте, Turtle.BAZON.Group, Вы писали:
TBG>Проверяет только по структуре каталогов или еще может углубляться внутрь архивов? Рассматирвается ли такой вариант?
Нет, архив представляется как обычный файл. Если он изменился, то он будет пропатчен как любой другой файл на бинарном уровне.
Здравствуйте, Nikolay_P_I, Вы писали:
N_P>Насколько больше ? В качестве примера — когда-то в гостях я видал пиратский Heroes of Might and Magic III (я-то подождал и лицензию купил, когда вышла) так тамошний файл ресурсов в 200Мб именно "раздвигался" со вставкой куска байт каким-то самопальным патчем при патченьи с версии 1.0 до 1.1.
Если вставили в 200Мб-айтный файл кусое 100 байт начиная со смещения 150Мб, то патч получится оставшиеся 50Мб + вставленные 100 байт + служебная информация (несколько килобайт). В данной версии еще не реализован сложный механизм анализа изменений, типа преместили блок в другое место файла, что-то перетасовали, но при этом сумарное содержимое осталось прежним.