Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup XDELTA Patch Maker

Автор: usermode
Дата сообщения: 01.06.2015 18:16
Xom9I4oK
Цитата:
с включенным Verify hash скомпиленный патч не доходит до конца и стопорится под конец пропатчивания.
какой тип патча? и можно проект залить или скриншот настроек?

Цитата:
С External files тоже не все так гладко - с выключенным Include files into the patch патч не проходит компиляцию.
У меня по дефолту компилирует. Скрипты или батники подключаются? Был баг с компиляцией, если была выбрана и отменена музыка. Этот баг уже исправлен.

Предлагаю потестировать бета версию с возможностью кэширования. Помимо этого сделан обратный индикатор для прогресс бара при откате и исправлен баг с компилированием при выборе и отмене музыки. Также поправил "серую" форму при запуске SilentForm патча, поправил порядок извлечения временных файлов: теперь патч-файлы приоритетнее внешних (это еще будет пересмотрено), ну и еще по мелочи.
Накатывать поверх 1.9.6:
1.9.7beta
http://rghost.ru/6JbyHWNbT

по возможности. нужно тщательно потестировать новую фичу кэширования. папка для кэширования создается на основе имени и версии приложения.

Нужно будет еще определиться по следующему:
- md5 верификацию файлов в патче делать отдельным циклом после выполнения всех действий или оставить как есть?
- по поводу подвисания или подтормаживания при извлечении патч-файлов во временную директорию: тут чтобы ничего не подвисало с опцией "Inside patch" нужно предварительно перед инициализацией патча организовывать извлечение патч-файлов с отображением уведомления, иначе никак, потому как для их извлечения по-любому нужно время. подвисание также будет при запуске при использовании большого размера внешних файлов внутри патча, на их предварительное извлечение тоже нужно время - для них тоже можно сделать соответствующее уведомление при запуске.
- какие именно уведомления нужно добавить в SilentForm и на каких этапах?
Автор: Xom9I4oK
Дата сообщения: 01.06.2015 19:15
usermode
Оба типа патча. Вот тут http://sendfile.su/1124013 в архиве листинг файлов и папок (я конечно могу залить сами файлы, но Вы будете качать 5 гигов?) и скрины настроек. На скрине где есть External files (без Include files) патч не проходит компиляцию, там где external files нет, либо есть, но с Include files, патч компилируется, но во время его работы почти в самом конце идет откат изменений (Patch was not alied).
Цитата:
1.9.7beta

Ок, протестирую. А по поводу нижеизложенного, то я думаю Вам как разработчику виднее.
Автор: usermode
Дата сообщения: 01.06.2015 19:39
Xom9I4oK
спасибо, разобрался быстро, исправил невозможность компиляции, остальное еще не потестировал:
(для 1.9.7beta)
http://rghost.ru/8TkgklkvZ
в стабильном релизе добавлю больше информации для пользователя в SilentForm режиме.

мне важно, как с данным исправлением ведет себя SilentForm патч? при включенной опции Verify hash все так же делает откат или еще какие-либо проблемы? Если проблема будет, то попробуйте собрать обычный патч и посмотреть в логе оттуда.

И еще, как на Ваш взгляд, стоит сделать сохранение Backup в Silent режиме по усмотрению разработчика патча точно так же как Verify hash?
Автор: Xom9I4oK
Дата сообщения: 01.06.2015 20:18

Цитата:
мне важно, как с данным исправлением ведет себя SilentForm патч? при включенной опции Verify hash все так же делает откат или еще какие-либо проблемы? Если проблема будет, то попробуйте собрать обычный патч и посмотреть в логе оттуда.

Лог с обычного патча я уже скидывал выше. Сейчас он не делает откат, но возникла другая проблема - патч устанавливается моментально и пишет типа все ОК, но по сути ничего не пропатчив, то есть в холостую сработал. Добавлено: я забыл папку с External files в этот раз скопировать - теперь сразу после запуска выдает ошибку и делает откат. Новый лог в процессе - скину как только скомпилирую патч. Добавлено2: С обычным патчем (не сайлент) то же самое - пишет что пропатчено, хотя ничего не патчил - только External files скопировал и все. А если 2 раз запускаешь, то выдает ошибку.
Цитата:
И еще, как на Ваш взгляд, стоит сделать сохранение Backup в Silent режиме по усмотрению разработчика патча точно так же как Verify hash?
Думаю смысл в этом есть, хотя лично для моих целей вряд ли понадобится.
Автор: usermode
Дата сообщения: 01.06.2015 20:55
Xom9I4oK
Цитата:
Лог с обычного патча я уже скидывал выше.
это лог одного удачно обработанного файла, по нему не ясно из-за какой причины начался откат, где-то несоответствие на другом файле.

Цитата:
Добавлено2: С обычным патчем (не сайлент) то же самое - пишет что пропатчено, хотя ничего не патчил - только External files скопировал и все. А если 2 раз запускаешь, то выдает ошибку.
по одному и тому же пути он сразу пропатчил, наверное, и не может повторно это сделать по причине, что уже пропатчено. такое ощущение, что Вы сравниваете повторно на двух одинаковых версиях, но в моддифицированной присутствуют дополнительные файлы.
Но если это не так, то придется во всем этом разобраться.
Автор: Xom9I4oK
Дата сообщения: 01.06.2015 21:13

Цитата:
по одному и тому же пути он сразу пропатчил, наверное, и не может повторно это сделать по причине, что уже пропатчено. такое ощущение, что Вы сравниваете повторно на двух одинаковых версиях, но в моддифицированной присутствуют дополнительные файлы.

Врядли за 1 секунду он успел пропатчить уйму файлов - такое пока что не возможно на обычных компьютерах. А Вы сами проверяли с моими настройками? Да и размер (вот ее листинг http://sendfile.su/1124063 - отчет в Мб) папки PatchData говорит об обратном (что я не сравниваю одинаковые папки).
Автор: usermode
Дата сообщения: 01.06.2015 21:26

Цитата:
Да и размер (вот ее листинг http://sendfile.su/1124063 - отчет в Мб) папки PatchData говорит об обратном (что я не сравниваю одинаковые папки).
я не утверждаю, хочу лишь удостовериться. такое возможно при включенном кеше, папки повторно не сраниваются. для убеждения перекомпилируйте патч с отключенной опцией кэширования. Но ошибки с моей стороны в скрипте были...
Автор: Xom9I4oK
Дата сообщения: 01.06.2015 21:33

Цитата:
я не утверждаю, хочу лишь удостовериться. такое возможно при включенном кеше, папки повторно не сраниваются. для убеждения перекомпилируйте патч с отключенной опцией кэширования.

А я кэширование и не включал.
Автор: usermode
Дата сообщения: 01.06.2015 22:23
1.9.7 beta 2
http://rghost.ru/7WtkTkVf4

- исправлена загрузка состояния чекбокса кэширования
- исправлен код копирования внешних файлов
- исправлена генерация Checker.ini
- исправлен(?) код верификации md5 для SilentForm
- исправлено состояние прогресс бара при критической ошибке для SilentForm

Xom9I4oK
это у меня еще и билдер "поломался"
Спасибо за терпение и помощь в полировании!


зы: немного переборщил и добавил дублирующий код для верификации md5, верификация будет выполняться два раза, но для тестирования сойдет
Автор: Xom9I4oK
Дата сообщения: 01.06.2015 22:53
usermode
Снова вернулись к тому с чего начали. Только в этот раз полоска доходит до конца и потом идет откат изменений. В этот раз настройки я поставил те, которые для меня наиболее оптимальны (прошлые были для ускорения тестирования) http://i72.fastpic.ru/big/2015/0601/85/0c5ac4cd6c25c08058b613fb5dc52e85.jpg
Автор: usermode
Дата сообщения: 01.06.2015 23:07
Xom9I4oK
пробовали патч в обычном режиме с логированием?
можно посмотреть сгенерированный Checker.ini и лог обычного патча?

я так понимаю, проблема осталась с какой-то ошибкой и применением отката из-за этого?

с отключенной опцией Verify hash все нормально?
Автор: Xom9I4oK
Дата сообщения: 02.06.2015 10:58

Цитата:
можно посмотреть сгенерированный Checker.ini и лог обычного патча?

Вот http://sendfile.su/1124182 (я нашел 2 чекера, поэтому в архив положил оба файла)

Цитата:
с отключенной опцией Verify hash все нормально?

Да, но несколько файлов "криво" пропатчились - http://i72.fastpic.ru/big/2015/0602/0b/3d61bb25a6592b354ce7449321d3a10b.jpg - отсюда вывод, что, скорее всего, "гонит" xdelta (мне сразу показалось подозрительным, что размер патча у нее меньше чем JoJodiff - сейчас скомпилю патч на нем).
Автор: usermode
Дата сообщения: 02.06.2015 12:29
Xom9I4oK
один чекер, который без ! не актуален и уже не используется - с чекером все нормально.

в логе обнаружено семь ошибок верификации md5, поэтому откат и применяется - со стороны алгоритма патча, тут все тоже нормально.

быть может "гонит" xdelta, судя по всему похоже на то. я специально добавил проверку верификации, т.к. движки полноценной проверки не имеют, для того чтобы выполнить правильное применение без претензий к разработчику патча, чтобы модифицированные файлы после пропатчивания соответствовали.

попробуйте откатить движок xdelta на 3.0.8, скопируйте эти файлы в папку pdata и замените:
http://rghost.ru/6Ytr65pPT

перекомпилируйте, может новый билд 3.0.9 не совсем удачный.

добавлено:
удалось воспроизвести проблему на своих больших игровых файлах, оказалось, "барахлит" XDELTA движок версии 3.0.9 - он некорректно вносит изменения, точнее, не восстанавливает оригинальное содержимое модифицированного файла, тем самым повреждая его!
откатил на версию 3.0.8 и стало все нормально! Автор XDELTA сделал новую версию более чем через год спустя от выхода предыдущей, изменил компилятор, исправил какие-то баги, не имеющие отношения к применению в патчере, и какие то "portability improvements" - вот и всплыли из-за этого такие баги.

Xom9I4oK, у Вас с версией 3.0.8 все хорошо? У меня вроде бы да.
Автор: Xom9I4oK
Дата сообщения: 02.06.2015 17:17

Цитата:
Xom9I4oK, у Вас с версией 3.0.8 все хорошо? У меня вроде бы да.

Пока еще не успел проверить со старой xdelta. Я проверил с JoJodiff - у меня нормально патчится, но External files с галкой Copy external file to InstallDir не копируются.
Автор: usermode
Дата сообщения: 02.06.2015 18:44
Xom9I4oK

Цитата:
но External files с галкой Copy external file to InstallDir не копируются.
пересмотрено, баги устранены:
1.9.7 beta 3 - тестировать с движком xdelta 3.0.8
http://rghost.ru/6HVptpRNV

- окончательно исправлен баг с копированием внешних файлов
- добавлена опция "Show batch window" для шагов Batch Script
- сделано экспериментальное запоминание используемого движка для кэш файлов (при загрузке проекта при отсутствии или изменении правильного значения, с галкой Use cache, всегда будет однократное пересоздание патч-файлов для текущего движка)

планируется еще добавить кнопку очистки кэш-файлов при нажатии: будет очищать весь кэш, или кэш текущего проекта, или отмена.
Автор: Xom9I4oK
Дата сообщения: 02.06.2015 18:55
usermode
Хорошо, я на прошлой версии проги проверил с xdelta 3.0.8 - все ОК (не считая бага с External files).
Добавлено: с новой версией распаковка External files работает нормально.
Автор: usermode
Дата сообщения: 02.06.2015 21:22
Раз уже все вроде нормально, то значит мне осталось добавить пару строк в SilentForm в качестве информации и кнопку очистки кэша. Вроде пока больше к новому релизу задач не предвидится.

Xom9I4oK, благодарю за тест!
Автор: usermode
Дата сообщения: 03.06.2015 11:04
[Release 1.9.7]

- Fixed bug with Patch compiling if music was enabled and disabled.
- Fixed bug with Patch compiling if ExternalFiles was specified in SilentForm mode.
- Fixed bug with External files copying after patching.
- Rollback XDELTA engine to version 3.0.8, because version 3.0.9 have bugs with restoring modified files to their original state. In version 3.0.9 some big game archives don't pass md5 verify check - in 3.0.8 all ok.
- Added option "Show batch window" to Batch Script steps (in same cases it needed for custom batch operations with required user input).
- Added feature "Use cache" - if checked then by first generating the patch-data will be stored in dir with specified "AppName" and "AppVer" in folder "xdata" and in next building this stored files, with the stored Checker.ini for it, will be added to patch automatically without all next patch-data generation. If option is unchecked then patch-data will be always cleared and generated again before new building. Cache is recommended to use if your shure in patch-data generation settings. If your change key-file or files for comparing or change engine settings then your must to disable "Use cache", generate new patch-data and enable cache again. So, the cache is remember stored patch-data files and key-file with engine settings - all other settings can be changed somehow with enabled "Use cache" option.
- Added [D] button to "Use cache" feature for deleting files cache.
- Added backward progress bar for Rollback.
- Added more informations to SilentForm patch.
- Minor tweaks, fixed issues.

Ссылка в шапке обновлена.
Автор: Xom9I4oK
Дата сообщения: 03.06.2015 19:54
usermode
А это баг http://i70.fastpic.ru/big/2015/0603/a3/a35e96fb270e086b1688e9258256c6a3.jpg или я что-то делаю не так? Листинг файлов http://sendfile.su/1124720
Чекер:
Да, чекер старый. Других нет, в одноименной папке лежал только он.
Автор: usermode
Дата сообщения: 03.06.2015 20:49
Xom9I4oK
скорее всего это баг кавычек. И использование двоеточия :, попробуйте неиспользовать двоеточие.

вообще не похоже на валидный чекер, как будто он не может сгенерироваться.

все ясно, не понимает папка с данными спецсимволы и не может создастся.
в качестве решения в следующем билде сделаю создание папок на основе md5 строки имени и версии проекта.

насчет кавычек нужно указывать две кавычки (не двойные), они в патче будут отображаться как одна - это специфика Inno, насчет кавычек думаю что тоже организую что-нибудь типа авто-вставки второй кавычки (или дефис как там правильно ).
Автор: Xom9I4oK
Дата сообщения: 03.06.2015 21:10
usermode
Да, спасибо. Пришлось везде убрать кавычки и двоеточие и только после этого заработало. Насчет двойных кавычек - их надо везде (Description, Appname, Patchapptitle) проставлять или как.
Автор: usermode
Дата сообщения: 03.06.2015 21:27
Xom9I4oK
Цитата:
Насчет двойных кавычек - их надо везде (Description, Appname, Patchapptitle) проставлять или как.
на данный момент да, это небольшие претензии к Inno специфике, там такой порядок, но что-нибудь придумаю.

придется делать еще одно поле, в котором нужно будет отдельно указывать имя проекта для сохранения только с английскими буквами, цифрами и пробелами, иначе не подружить будет сохранение проекта.
Автор: usermode
Дата сообщения: 08.06.2015 12:13
[Release 1.9.8]

- Fixed small issue with reset project settings to default - if before reseting external files was choosed then it enabled after loading defaults, now it state will be disabled as default.
- Fixed bug with Patch compiling if AppName and AppVerName contain special characters - now cache build with md5 result of specified AppName and AppVerName.
- Added new field ProjectName for specify project name with allowed only english chars, digits and spaces.
- Added to help new page "Limitations" - please read it for knowing some limitations of Patch Maker.
- Minor tweaks.

Ссылка в шапке обновлена.

Xom9I4oK, слишком емко делать поиск в каждой строке всех символов ' и вставлять еще один автоматически, к тому же все эти циклы могут замедлить работу. Для этого просто необходимо знать определенные правила, которые вынесены в страницу Ограничения. Думаю, что вопрос спецсимволов и кавычек этим решен. Забыл правда указать, что для AppName и AppVerName такие же правила как и для PatchNotes, но это было бы и так понятно на практике .
Автор: usermode
Дата сообщения: 11.06.2015 12:51
[Release 1.9.9]

- Patch optimization.
- Updated VclStylesinno.dll to version 1.4.5.0.
- Minor tweaks.

Ссылка в шапке обновлена.
Автор: Xom9I4oK
Дата сообщения: 18.06.2015 19:47
usermode
Спасибо, новая версия работает хорошо, только плохо, что точка в имени проекта мешает его сохранению. И хотелось бы опционально выключить предупреждения на отсутствие иконки и описания (для сайлент/с-форм патчей вообще, думаю, описание не актуально).
Автор: usermode
Дата сообщения: 18.06.2015 20:33
Xom9I4oK
Цитата:
только плохо, что точка в имени проекта мешает его сохранению.
учту, это же нужно в указании версии - какие еще допустимые символы стоит добавить к имени проекта, чтобы они не мешали сохранению?

Цитата:
И хотелось бы опционально выключить предупреждения на отсутствие иконки и описания (для сайлент/с-форм патчей вообще, думаю, описание не актуально).
пересмотрю, возможно сделаю, чтобы строка об отсутствии иконки и описания записывалась в поля, но опционально отключать данную функцию не буду, т.к. сообщение выдаваться и "мешать" не будет.
Автор: Xom9I4oK
Дата сообщения: 18.06.2015 21:24

Цитата:
какие еще допустимые символы стоит добавить к имени проекта, чтобы они не мешали сохранению?

Я думаю те же символы, из полей с которыми генерируется ProjectName, хотя я бы и только точке был бы рад.

Цитата:
сообщение выдаваться и "мешать" не будет.

Так даже лучше, если не будет появляться вообще. Кстати, под описанием я имею ввиду большое пустое белое поле в левом нижнем углу.
Автор: usermode
Дата сообщения: 18.06.2015 21:36

Цитата:
Я думаю те же символы, из полей с которыми генерируется ProjectName, хотя я бы и только точке был бы рад.
не все так просто с именем папки и с используемыми спецсимволами, такая папка просто не создастся, но тем не менее, добавлю самое необходимое.

Цитата:
Кстати, под описанием я имею ввиду большое пустое белое поле в левом нижнем углу.
а, ну можно и в лог сборки будет добавить.
Автор: usermode
Дата сообщения: 20.06.2015 17:40
[Release 1.9.9.1]

- Fixed bug with loading incorrect parameters of patching engine if previously other engine was selected while reseting project to defaults or loading a project.
- Fixed bug with specifing key-file if path to original files dir contain differ case chars in the path.
- Fixed bug with compiling if key-file and original files dir contain differ case chars in the path.
- Added dots support for ProjectName.
- Changed message notifications for disabled ico-file and information file - now if ico or information file was not exists then in it fields will be showed notification strings only.
- Minor tweaks.

Ссылка в шапке обновлена.

Данная версия содержит критический баг с неполной генерацией патч-файлов - для использования всем пока откатиться на предыдущую!
Автор: usermode
Дата сообщения: 21.06.2015 14:08
[Release 1.9.9.2]

- Fixed crytical bug from version 1.9.9.1 with incomplette generating patch-data.
- Fixed bug with deleting all cache files - now dir "checker" is also cleaned.
- Improved Patch Maker Log.
- Minor tweaks.

Ссылка в шапке обновлена.

Страницы: 123456

Предыдущая тема: Offtop


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.