а расскажите про gitify пожалуйста

Сегодня youtube подсунул мне ролик с MODX meetup 2015 года, где Иван Климчук рассказывает о gitify. (пронырливый google знает что я ищу информацию о совместной разработке и возможностях синхронизации сайтов).
Ролик этот я уже смотрел 2 года назад, ничего тогда не понял от слова совсем. Сейчас понял немногим больше. Через часик выделю время и буду на практике пробовать, но буду рад если кто-то поделится своим опытом использования и ответит на мои, пока что теоретические вопросы.
Для начала озвучу мою проблему. Хочу иметь сайт production и сайт(сервер на котором будут вести работы с копией production). Чтобы разработчик имел доступ только к серверу разработки, к гитхабу но ни в коем случае ни к production. Чанки, сниппеты, шаблоны — это все работает на файловых элементах pdoTools (в идеальной ситуации, но пока рассмотрим идеальную) и синхронизировать их через github не так сложно. Но разработчику на дев сайте обязательно придется создавать новые TV, плагины, менять системные настройки, создавать свои таблицы в базе и это конечно на modx беда. При том что он не имеет права пойти на production и там в админке повторить тоже самое, ну не записки же ему писать — «а потом я создал TV назвал так-то, тип такой то, привязал к такому та шаблону»
1. Проект как бы жив? Последний комиты были несколько лет назад. Имеет ли вообще смысл изучать?
2. Что именно синхронизирует gitify? Данные из всех таблиц? Изменится системная настройка он создаст файл, хранящий эту настройку? Добавиться новый контекст — будет синхронизирован и контекст?
3. По какому методу определяется, произошли изменения или нет. Плохо сформулировал. Ну тоесть вот в видео Иван установил gitify, через него установил modx, через него установил два дополнения, потом изменил поле контент у одного ресурса и опа — сделал gitify build. Я так понимаю, что эта команда создает файлы, хранящие данные из базы. Но создался один файл — с содержимым ресурса. А почему не миллион файлов? Ведь в базе уже даже после установки уже очень много данных. Если я через час зайду и задам у другого ресурса новый pagetitle — тоже создаться один только файл? Кто следит за изменениями и понимает, что эти изменения уже отработаны и в gitify build их включать уже не нужно?
4. Мне кажется что если вообще синхронизировать так данные с сайтом production он рискует очень быстро прийти в негодность. Поясню почему. Сайт продакшен живет своей активной жизнью. каждый день менеджеры добавляют сотни новых ресурсов, удаляют и так далее. Например разработчику приходит задача — разработать новый раздел на сайте Бренды, с какой-то там хитрой логикой программной. Он на своем сайте для разработки создает ресурс, для него шаблон, снипетты какие-то, js скрипты и прочее. Проверяет, все супер. запускает gitify build?, пушит на github (пока не вдаюсь подробности) и эти файлы через git оказываются на pruduction. Но сайт то живет свей жизнью, и если на сайте для разработки ресурс Бренды имел id 50, то на сайте про — последний id для ресурсов — уже 50000. Да Иван в видео рассказывает что существует некая логика в случае если задваиваются айдишники, и как я понял там запускается какая-то чистка (хотя что может быть за чистка айдишиков, если например на сайте pro есть ресурс с айди 50 и он нужен и полезен), но по факту получается что скорее всего Бренды будут созданы с id 50001. Не знаю приведет ли это к чему-то хорошему, но это ведь только начало. А что если продолжить и дальше так вести разработку — начнется полнейший хаос, по полному несовпадению idшников. И я наверное понимаю, что настоящие веб разработчики не занимаются такой не барской работой, как создание новых страниц и разделов на сайте, но это в идеальной жизни а в реальности — это и верстка, и создание ресурсов и программирование.
5. Не совсем понял из видео. Иван ничего не добавляет в гитигноре, делает добавление всех файлов в гит, все файлы пушит. Но когда получает эти данные на другом сервере — он вынужден запускать заново установку modx и установку же заново двух дополнений. Хотя по идее сделав git fetch git merge он должен был все файлы modx скачать. Но вопрос в целом звучит так — наверное по логике git на сайте должен следить только за одной директорией — только за той где gitify создает файлы?
6. Ну и в целом? Никогда не встречал сайтов, созданных с использованием gitify. Мне часто приходят на переработку, на поддержку сайты на modx. Попадались те что используют компонент Зернова, но с gitify ни одного. Если технология хорошая то почему?
Александр Мельник
29 марта 2020, 18:02
modx.pro
1
550
0

Комментарии: 6

Михаил
30 марта 2020, 08:03
0
    Александр Мельник
    30 марта 2020, 08:08
    0
    Лаконично.
    Документацию видел и писал, что займусь и ее изучением и немного практикой, но хотелось бы услышать и мнение сообщества. Кстати документация не дала мне ответы на большинство вопросов (я вижу чтьо документация это просто перевод англоязычной, за что спасибо Климчуку, но назвал бы эту документацию поверхностной)
    Вы к примеру, Михаил — пользовались? пользуетесь? Есть положительный опыт долгого использования?
      Михаил
      30 марта 2020, 09:39
      0
      Да, пользовался. Понравился. Есть минус, большие данные не переносит.
Игорь Терентьев
30 марта 2020, 11:39
0
Привет, около 3х лет пользуюсь gitify каждый день. Какие объекты выгружать ты выбираешь сам.
По поводу id ресурсов, это да, проблема. Есть два решения, на вскидку:
1) Сначала создавать скрытый ресурс на продакшене, потом с таким же id на дев. Это подойдет, если есть доступ к проду.
2) Поиск id ресурса по url:
{$res = $_modx->findResource('url-to/doc/')}
Проблемы с которыми сталкивался:
1) Также на проде нужно инсталлировать новые пакеты.
2) Если сайт мультиязычный, то лексиконы могут некорректно импортироваться из-за особенностей БД.

Последние коммиты были 10 месяцев назад: github.com/modmore/Gitify

Если над сайтом работает несколько разработчиков, то git-flow очень удобная штука для облегчения работы с git. danielkummer.github.io/git-flow-cheatsheet/index.ru_RU.html
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
6