Как обновить TorrentPier без переустановки и потери модификаций

belomaxorka

Разработчик
Administrator
TP version
none
В данном руководстве мы рассмотрим как можно обновить ваш движок (любой версий, LTS включительно) до желаемой (либо актуальной).

Что нужно знать для обновления:
  • Текущую версию движка
  • Желаемую версию движка
Обновление будет заключаться в переносе изменений с нужной версии в вашу. Делается это через "Сравнение изменений" в GitHub (Ниже подробнее расскажу). Такой способ обновления является относительно безопасным и позволит вам сохранить установленные модификации.
Почему же я сказал "относительно" безопасный? Дело в том, что при переносе некоторых новых изменений, может быть такое, что они будут относиться к той строке, в которой находиться код мода. В таком случае вам придется уже самостоятельно думать как правильно совместить новые изменения с сохранением функциональности модификации. Универсального способа тут нет, ибо каждая ситуация уникальная, но как правило совмещение происходит очень легко.

Итак, приступаем
В качестве примера возьмем основную ветку (версию движка). Действия для обновления LTS точно такие же.
Как я говорил выше нам нужно знать текущую версию движка и желанную. Далее мы переходим по этой ссылке (для LTS вот ссылка) и видим примерно такую картину:
Снимок.PNG

В первом селекторе (он отмечен красным цветом) вам нужно выбрать текущую версию движка, во втором селекторе (он отмечен зеленым цветом) нужно выбрать желаемую версию движка, любую, можно перепрыгивать версии (в таком случае вам придется переносить изменения за выбранное вами количество версий, то-есть можно обновиться с 2.4.0-alpha1 по 2.4.0-alpha4 сразу). И да, чуть не забыл, вам нужно нажать на вкладку Tags (тэги) для выбора версий.

В итоге у вас должна быть примерно такая картина (с учетом выбранных вами версий). Я выбрал сценарий обновления с v2.4.0-alpha1 до v2.4.0-alpha2:
Снимок.PNG


Далее вам нужно определиться с тем, как вы хотите переносить изменения. Если все целиком, без разбора, то выбираем вкладку Files changed, в таком случае вам придется строго внести изменения во все указанные файлы, не пропуская. Этот вариант самый быстрый и полноценный. (Рекомендуется)

Если вы выбрали перенос по коммитам (первая вкладка Commits), то вам нужно перенести изменения в рамках выбранного вами коммита, следовательно вы можете в любой момент остановиться. Начало изменений идёт сверху вниз, то-есть начинать вам нужно именно с самого верхнего коммита.

Итак, после того как вы определились в вариантами выше, у вас будет примерно такая картина (актуально для обоих вариантов):

Снимок.PNG


В заголовке указано имя файла в котором происходит изменение (то-есть это тот файл, который вам нужно открыть).

Красным цветом отмечен код вашей версий (по этому коду ищем нужную строку в файле).
Синим цветом отмечен код который нужно перенести в ваш код (заменить в случае если изменения приходятся на одну строку/строки).

Вот ещё пример:


Снимок.PNG


В данном случае у нас есть и замена (правка строки) и добавление нового кода.

Такими темпами мы вносим правки во все нужные файлы и в итоге ваш движок будет полностью соответствовать выбранной вами версии.

Всем успехов с обновлением движка, вопросы можете задавать спокойно в данной теме. 🥳✌️
 
Please note, if you want to make a deal with this user, that it is blocked.
Помню как то обновлялся таким способом .... Долгая процедура )))
 
А можно на гитхаб закинуть свой код сайта и сравнивать с желаемой версией для обновления?
 
А можно на гитхаб закинуть свой код сайта и сравнивать с желаемой версией для обновления?
Вроде как нет. Сравнение работает только между тэгами и ветками в рамках одного репозитория
 
Вроде как нет. Сравнение работает только между тэгами и ветками в рамках одного репозитория
А хотя, попробуйте такой трюк:
Code:
https://github.com/{тут ваш аккаунт}/{тут ваш репозиторий}/compare/{тут ваша ветка, по умолчанию main}...torrentpier:torrentpier:{тут версия с которой сравниваем}
Если не поможет, то сделайте форк движка на гитхабе, потом закиньте файлы своего сайта в папку с локальным репозиторием (перед этим удалить все файлы из папки, кроме папки .git) (форком) который вы клонировали к себе, после сделайте пул и по факту у вас будет форк, но с вашими файлами, после сделайте сравнение через способ выше
 
Last edited:
А хотя, попробуйте такой трюк:
Code:
https://github.com/{тут ваш аккаунт}/{тут ваш репозиторий}/compare/{тут ваша ветка, по умолчанию main}...torrentpier:torrentpier:{тут версия с которой сравниваем}
Если не поможет, то сделайте форк движка на гитхабе, потом закиньте файлы своего сайта в папку с локальным репозиторием (перед этим удалить все файлы из папки, кроме папки .git) (форком) который вы клонировали к себе, после сделайте пул и по факту у вас будет форк, но с вашими файлами, после сделайте сравнение через способ выше
Как вариант, можете скинуть дамп своего сайта мне в ЛС (без торрентов и прочих данных), я попробую провернуть трюк выше, а вам скину ссылку по которой вы уже будете делать правки
 
Как вариант, можете скинуть дамп своего сайта мне в ЛС (без торрентов и прочих данных), я попробую провернуть трюк выше, а вам скину ссылку по которой вы уже будете делать правки
Но учтите, вам придется изменить порядка 1400 файлов
1720886327819.png

*Это с учетом языков, флагов и прочего. По факту файлов куда меньше, примерно файлов ~100-200 с кодом
 
Буду пробовать по варианту в инструкции первого поста. Проблема может быть с базой, модами и своей темой.
 
admin/admin_ug_auth.php
строка 196 и много других мест где array оставлено:
PHP:
foreach ($forums['c'] as $c_id => $c_data) {
        $template->assign_block_vars('c', array(
            'CAT_ID' => $c_id,
            'CAT_TITLE' => $forums['cat_title_html'][$c_id],
            'CAT_HREF' => "$base_url&" . POST_CAT_URL . "=$c_id",
        ));

По ходу обновления вижу есть убирается array(, а есть остается так само последняя запятая иногда остается. Ошибка или так нужно?
 
Last edited:
Back
Top