Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Утилита patch 2 MOD (теперь есть)

Форум для авторов модов для phpBB 2.0.x.
Аватара пользователя
ETZel
phpBB 1.4.3
Сообщения: 93
Стаж: 18 лет 2 месяца
Откуда: Челябинск
Контактная информация:

Утилита patch 2 MOD (теперь есть)

Сообщение ETZel »

Есть ли такая утилита, которая patch файлы переделывает в mod файлы в синтаксисе phpBB? Это очень бы упростило создание и обновление модов (не руками же все эти update_22_to_33.mod создают) :?:
Последний раз редактировалось ETZel 15.01.2006 10:48, всего редактировалось 1 раз.
IncominG

Сообщение IncominG »

ETZel
Боюсь что вручную...
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 146 раз
Контактная информация:

Сообщение Balamut »

ETZel
для EasyMod?
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
ETZel
phpBB 1.4.3
Сообщения: 93
Стаж: 18 лет 2 месяца
Откуда: Челябинск
Контактная информация:

Сообщение ETZel »

Smayliks, я не использую EasyMOD, тк большинство модов далеки от совершенства и приходится их переделывать по ходу установки (ну или после установки - все равно лучше знаешь: что, куда и как вставлял).

С такой утилитой моды и обновления для них можно было бы создавать автоматом из CVS и не париться с ручным составлением файлов .mod
(все-таки гуманоидам .mod понятней чем .diff)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 2 месяца
Откуда: Novosibirsk,RU
Контактная информация:

Сообщение [R: R@m$e$ :U] »

хм... лично я делаю все в ручную...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 146 раз
Контактная информация:

Сообщение Balamut »

ETZel писал(а):Smayliks, я не использую EasyMOD,
тогда смысл переделывания?
ETZel писал(а):все-таки гуманоидам .mod понятней
Ой ли? Не один десяток сообщений видел, где люде в винампе *.mod открывали...
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 19 лет 2 месяца
Откуда: Москва
Контактная информация:

Сообщение Coagulant »

Smayliks писал(а):Ой ли? Не один десяток сообщений видел, где люде в винампе *.mod открывали...
Речь была не о том, что это понятно для всех. А о том, что .mod понятнее, чем .diff. C чем не могу не согласиться.

По сабжу - сам всё делаю ручками. От подобного софта бы не отказался, апдейты писать к модам - одно наказание. :D
Последний раз редактировалось Coagulant 09.01.2006 15:24, всего редактировалось 1 раз.
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 2 месяца
Откуда: Novosibirsk,RU
Контактная информация:

Сообщение [R: R@m$e$ :U] »

а теперь вопрос... и как вы представляете реализацию этого софта? 0_о сравнивать по инсталяторам двух версий? или как? а у меня обновление не от версии к версии, а от версии к последней... это как реализоовать?
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
ETZel
phpBB 1.4.3
Сообщения: 93
Стаж: 18 лет 2 месяца
Откуда: Челябинск
Контактная информация:

Сообщение ETZel »

Объясняю вкратце, зачем это надо (для тех, кто знает, что такое CVS)
Допустим, я хочу написать мод "Super MOD".
1) Беру свежую версию форума, ставлю на локальный сервер, кладу под CVS (например, под именем phpbb-mods). Либо делаю ветку (branch) уже имеющегося форума (с именем supermod). Вешаю тег supermod-0-1-0.
2) Дальше пишу мод: меняю файлы, добавляю новые и т.д. (все коммиты идут в ветку supermod). Когда чувствую, что "дошел" до версии 0.1.1, вешаю тег supermod-0-1-1.
3) Пора опубликовать мод - пусть народ потестирует. Делаю rdiff

Код: Выделить всё

cvs rdiff -c -r supermod-0-1-0 -r supermod-0-1-1 phpbb-mods > supermod011.patch
Получаю фактически готовый мод в формате patch (supermod011.patch), в нем зафиксированы все изменения и все новые файлы! Осталось применить магическую (и, похоже, несуществующую) утилитку patch2mod - вуаля! supermod011.mod, полученный полностью автоматически.
Конечно, с бинариками типа картинок придется разбираться отдельно. но это мелочи...
4) Дальше еще круче. Народ нашел кучу багов - фиксим их, добавляем новые фичи, получаем версию 0.1.2. Вешаем тег supermod-0-1-2. Тем же rdiff'ом получаем supermod012.patch и (тада!) supermod_update_011_to_012.patch ! rdiff можно сделать между любыми двумя ревизиями (что и нужно тов. Рамзесу). Можно даже сделать rdiff c более новой версии на старую (например, соорудить патч для удаления мода). Снова магическая утилитка - и в сеть...
На форуме, кстати, были обсуждения, что .patch файлы можно устанавливать автоматически, похлеще всяких EasyMOD'ов. Так что имеет смысл patch публиковать тоже.
И это самый простой сценарий использования CVS... :D

Товарищи гуру :!: Хочу написать статью типа "Использование CVS при создании модов". Оно кому-нибудь надо? :?: Похоже, мало кто пользуется этой удобнейшей вещью. А это не так сложно, как кажется.

Возвращаясь к теме: видимо, придется самому соорудить php-шничек, который бы перегонял patch в mod. И настанет благодать...

PS. просто раньше я не публиковал свои моды, а сейчас вот назрела необходимость.
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 19 лет 2 месяца
Откуда: Москва
Контактная информация:

Сообщение Coagulant »

Обсуждение про patch и diif в качестве замены модов :wink:
http://www.phpbbguru.net/community/viewtopic.php?t=2912

ETZel, возьметесь? Был бы здорово забыть про оформление и заниматься исключительно написанием модов.
Аватара пользователя
ETZel
phpBB 1.4.3
Сообщения: 93
Стаж: 18 лет 2 месяца
Откуда: Челябинск
Контактная информация:

Сообщение ETZel »

Coagulant писал(а):ETZel, возьметесь?
Да, возьмусь. К тому же работенка несложная.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет
Поблагодарили: 2 раза
Контактная информация:

Сообщение Xpert »

ETZel писал(а):Хочу написать статью типа "Использование CVS при создании модов". Оно кому-нибудь надо?
Надо...
Coagulant писал(а):Было бы здорово забыть про оформление и заниматься исключительно написанием модов.
Действительно. А то процесс собирания измененных кусков по файлам иногда приводит к тому, что некоторые куски по дороге теряются...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
ETZel
phpBB 1.4.3
Сообщения: 93
Стаж: 18 лет 2 месяца
Откуда: Челябинск
Контактная информация:

Сообщение ETZel »

Спросил про patch2mod на офсайте (http://www.phpbb.com/phpBB/viewtopic.php?t=357714). Сделал вывод, что у них такой нет и им не надо. (mod studio, правда, последний раз видел полгода назад, но сомневаюсь что она сильно изменилась)

Сделал первую убогую версию своей утилиты, пользоваться так:

Код: Выделить всё

patch2mod.php <файл_с_патчем>
Патч должен быть в формате unidiff (его проще всего парсить ;) )

А лучше так (из project root):

Код: Выделить всё

patch2mod.php <ревизия_1> <ревизия_2>
Пока НЕ умеет:
1) угадывать INLINE ADD и INLINE REPLACE
2) создавать новые файлоы из rdiff'a (даже не пытайтесь)
3) определять какие файлы принадлежат моду, а какие - нет
4) работать быстро (патч 1,5 метра - 5 секунд)
Вложения
patch2mod.zip
(1.9 КБ) 698 скачиваний
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет
Поблагодарили: 2 раза
Контактная информация:

Сообщение Xpert »

ETZel писал(а):Использование CVS при создании модов
Чувствуется подобная статья лишней не будет 100%.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
ETZel
phpBB 1.4.3
Сообщения: 93
Стаж: 18 лет 2 месяца
Откуда: Челябинск
Контактная информация:

Продолжение истории...

Сообщение ETZel »

В связи с вот этой темой на офсайте усовершенствовал patch2mod.
(а) Теперь может работать без CVS, просто сравнивая два каталога (чистый phpbb и модифицированный).
(б) Добавляет заголовок мода, автоматически заполняя поля Changed Files и Included Files. Я бы рекомендовал поправить шаблон мода в конце patch2mod.php и заранее заполнить поля author/title/history и т.д., чтобы не париться после каждой перегенерации).
(в) Худо-бедно детектирует IN-LINE операции.

Для работы без CVS нужен GNU diff. Windows-порт его входит в состав MSYS (скачать 4 мб с sourceforge и установить).

Работает так (для сравнения 2-х директорий):

Код: Выделить всё

php.exe -f patch2mod.php d:\clean-phpbb-dir d:\modded-phpbb-dir
Если будет жаловаться, что "Can't find GNU diff", добавьте c:\msys\1.0\bin в PATH или в скрипте в строке

Код: Выделить всё

$DIFF = 'diff';
пропишите полный путь к вашему diff.exe.

Внимание! FIND и особенно IN-LINE FIND контексты нуждаются в проверке и ручной правке.

С CVS работает так же как и предыдущая версия. Или так (запускать в project root):

Код: Выделить всё

php.exe -f patch2mod.php clean-phpbb-tag modded-phpbb-tag
Сам скрипт и пример того, что получается в результате:
Вложения
patch2mod.zip
Скрипт patch2mod.php и пример.
(14.61 КБ) 662 скачивания
Закрыто

Вернуться в «Для авторов (phpBB 2.0.x)»