
Утилита patch 2 MOD (теперь есть)
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 3 месяца
- Откуда: Челябинск
Утилита patch 2 MOD (теперь есть)
Есть ли такая утилита, которая patch файлы переделывает в mod файлы в синтаксисе phpBB? Это очень бы упростило создание и обновление модов (не руками же все эти update_22_to_33.mod создают) 

Последний раз редактировалось ETZel 15.01.2006 10:48, всего редактировалось 1 раз.
-
- Former team member
- Сообщения: 2214
- Стаж: 20 лет 1 месяц
- Откуда: {postrow.POSTER_FROM}
- Поблагодарили: 68 раз
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 3 месяца
- Откуда: Челябинск
Smayliks, я не использую EasyMOD, тк большинство модов далеки от совершенства и приходится их переделывать по ходу установки (ну или после установки - все равно лучше знаешь: что, куда и как вставлял).
С такой утилитой моды и обновления для них можно было бы создавать автоматом из CVS и не париться с ручным составлением файлов .mod
(все-таки гуманоидам .mod понятней чем .diff)
С такой утилитой моды и обновления для них можно было бы создавать автоматом из CVS и не париться с ручным составлением файлов .mod
(все-таки гуманоидам .mod понятней чем .diff)
-
- phpBB Maniac
- Сообщения: 1464
- Стаж: 20 лет 3 месяца
- Откуда: Novosibirsk,RU
хм... лично я делаю все в ручную...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
-
- Former team member
- Сообщения: 2214
- Стаж: 20 лет 1 месяц
- Откуда: {postrow.POSTER_FROM}
- Поблагодарили: 68 раз
-
- Former team member
- Сообщения: 955
- Стаж: 20 лет 3 месяца
- Откуда: Москва
Речь была не о том, что это понятно для всех. А о том, что .mod понятнее, чем .diff. C чем не могу не согласиться.Smayliks писал(а):Ой ли? Не один десяток сообщений видел, где люде в винампе *.mod открывали...
По сабжу - сам всё делаю ручками. От подобного софта бы не отказался, апдейты писать к модам - одно наказание.

Последний раз редактировалось Coagulant 09.01.2006 15:24, всего редактировалось 1 раз.
-
- phpBB Maniac
- Сообщения: 1464
- Стаж: 20 лет 3 месяца
- Откуда: Novosibirsk,RU
а теперь вопрос... и как вы представляете реализацию этого софта? 0_о сравнивать по инсталяторам двух версий? или как? а у меня обновление не от версии к версии, а от версии к последней... это как реализоовать?
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 3 месяца
- Откуда: Челябинск
Объясняю вкратце, зачем это надо (для тех, кто знает, что такое CVS)
Допустим, я хочу написать мод "Super MOD".
1) Беру свежую версию форума, ставлю на локальный сервер, кладу под CVS (например, под именем phpbb-mods). Либо делаю ветку (branch) уже имеющегося форума (с именем supermod). Вешаю тег supermod-0-1-0.
2) Дальше пишу мод: меняю файлы, добавляю новые и т.д. (все коммиты идут в ветку supermod). Когда чувствую, что "дошел" до версии 0.1.1, вешаю тег supermod-0-1-1.
3) Пора опубликовать мод - пусть народ потестирует. Делаю rdiffПолучаю фактически готовый мод в формате 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...
Товарищи гуру
Хочу написать статью типа "Использование CVS при создании модов". Оно кому-нибудь надо?
Похоже, мало кто пользуется этой удобнейшей вещью. А это не так сложно, как кажется.
Возвращаясь к теме: видимо, придется самому соорудить php-шничек, который бы перегонял patch в mod. И настанет благодать...
PS. просто раньше я не публиковал свои моды, а сейчас вот назрела необходимость.
Допустим, я хочу написать мод "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
Конечно, с бинариками типа картинок придется разбираться отдельно. но это мелочи...
4) Дальше еще круче. Народ нашел кучу багов - фиксим их, добавляем новые фичи, получаем версию 0.1.2. Вешаем тег supermod-0-1-2. Тем же rdiff'ом получаем supermod012.patch и (тада!) supermod_update_011_to_012.patch ! rdiff можно сделать между любыми двумя ревизиями (что и нужно тов. Рамзесу). Можно даже сделать rdiff c более новой версии на старую (например, соорудить патч для удаления мода). Снова магическая утилитка - и в сеть...
На форуме, кстати, были обсуждения, что .patch файлы можно устанавливать автоматически, похлеще всяких EasyMOD'ов. Так что имеет смысл patch публиковать тоже.
И это самый простой сценарий использования CVS...

Товарищи гуру


Возвращаясь к теме: видимо, придется самому соорудить php-шничек, который бы перегонял patch в mod. И настанет благодать...
PS. просто раньше я не публиковал свои моды, а сейчас вот назрела необходимость.
-
- Former team member
- Сообщения: 955
- Стаж: 20 лет 3 месяца
- Откуда: Москва
Обсуждение про patch и diif в качестве замены модов :wink:
http://www.phpbbguru.net/community/viewtopic.php?t=2912
ETZel, возьметесь? Был бы здорово забыть про оформление и заниматься исключительно написанием модов.
http://www.phpbbguru.net/community/viewtopic.php?t=2912
ETZel, возьметесь? Был бы здорово забыть про оформление и заниматься исключительно написанием модов.
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 3 месяца
- Откуда: Челябинск
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
Надо...ETZel писал(а):Хочу написать статью типа "Использование CVS при создании модов". Оно кому-нибудь надо?
Действительно. А то процесс собирания измененных кусков по файлам иногда приводит к тому, что некоторые куски по дороге теряются...Coagulant писал(а):Было бы здорово забыть про оформление и заниматься исключительно написанием модов.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 3 месяца
- Откуда: Челябинск
Спросил про patch2mod на офсайте (http://www.phpbb.com/phpBB/viewtopic.php?t=357714). Сделал вывод, что у них такой нет и им не надо. (mod studio, правда, последний раз видел полгода назад, но сомневаюсь что она сильно изменилась)
Сделал первую убогую версию своей утилиты, пользоваться так:Патч должен быть в формате unidiff (его проще всего парсить
)
А лучше так (из project root):
Пока НЕ умеет:
1) угадывать INLINE ADD и INLINE REPLACE
2) создавать новые файлоы из rdiff'a (даже не пытайтесь)
3) определять какие файлы принадлежат моду, а какие - нет
4) работать быстро (патч 1,5 метра - 5 секунд)
Сделал первую убогую версию своей утилиты, пользоваться так:
Код: Выделить всё
patch2mod.php <файл_с_патчем>

А лучше так (из project root):
Код: Выделить всё
patch2mod.php <ревизия_1> <ревизия_2>
1) угадывать INLINE ADD и INLINE REPLACE
2) создавать новые файлоы из rdiff'a (даже не пытайтесь)
3) определять какие файлы принадлежат моду, а какие - нет
4) работать быстро (патч 1,5 метра - 5 секунд)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
-
- phpBB 1.4.3
- Сообщения: 93
- Стаж: 19 лет 3 месяца
- Откуда: Челябинск
Продолжение истории...
В связи с вот этой темой на офсайте усовершенствовал patch2mod.
(а) Теперь может работать без CVS, просто сравнивая два каталога (чистый phpbb и модифицированный).
(б) Добавляет заголовок мода, автоматически заполняя поля Changed Files и Included Files. Я бы рекомендовал поправить шаблон мода в конце patch2mod.php и заранее заполнить поля author/title/history и т.д., чтобы не париться после каждой перегенерации).
(в) Худо-бедно детектирует IN-LINE операции.
Для работы без CVS нужен GNU diff. Windows-порт его входит в состав MSYS (скачать 4 мб с sourceforge и установить).
Работает так (для сравнения 2-х директорий):
Если будет жаловаться, что "Can't find GNU diff", добавьте c:\msys\1.0\bin в PATH или в скрипте в строке пропишите полный путь к вашему diff.exe.
Внимание! FIND и особенно IN-LINE FIND контексты нуждаются в проверке и ручной правке.
С CVS работает так же как и предыдущая версия. Или так (запускать в project root):
Сам скрипт и пример того, что получается в результате:
(а) Теперь может работать без 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
Код: Выделить всё
$DIFF = 'diff';
Внимание! FIND и особенно IN-LINE FIND контексты нуждаются в проверке и ручной правке.
С CVS работает так же как и предыдущая версия. Или так (запускать в project root):
Код: Выделить всё
php.exe -f patch2mod.php clean-phpbb-tag modded-phpbb-tag
У вас нет необходимых прав для просмотра вложений в этом сообщении.