Что: 6a4281c80dde3126ce414779d349aa1e0ddf67d0
Когда: 2021-01-19 14:50:08+03:00
Темы: hate
Gitlab неюзабельное говно Как же я его ненавижу, искренне. На работе в одном проекте попробовали им пользоваться для отправки merge request-ов и их обсуждения. Он совершенно рандомно (или не понятно для нас как именно) присылает уведомления на почту о комментариях к коду. Короче что то присылает, а что-то нет. Ладно, чёрт с почтой -- я захожу в merge request и нигде не показывается что у текущего diff-а есть комментарии над куском какого-то файла. Более того, многие большие файлы свёрнуты. Если нажать на expand all чтобы раскрыть колоссальные портянки текста, то... опять же, рядом с комментариями нигде нет никаких слов "comment" или подобного -- текст я могу искать только по дате или имени автора комментария (или тексту комментария), которые, очевидно, я не могу знать заранее. В итоге мы в почту пишем о том что написали там комментарий. Отвечаю на комментарий и хочу отформатированный текст вставить (кусок кода). Его предложение через меню о вставке "``" не поможет для многострочного вывода. Никаких предложений об использовании <pre> нет -- догадался сам. Ввёл их -- жмакнул "edit comment" и вижу что ничего не обновилось. Точнее он показалась что "edited just now", но форматирование не обновлено. Ok, снова редактирую, жмакаю "preview", вижу что всё ok, нажимаю снова edit и снова ничего не обновляется. Снова повторяю, но уже добавляя просто случайный текст в конец, а не только <pre> тэги -- помогло. Когда мне надо вмёржить не default ветку своего репозитория в не default ветку другого, то интерфейс позволяет выбрать src/dst ветки и репозитории. Вот только при выборе dst ветки целевого репозитория -- моя src сбрасывается. А при выборе src, после выбора dst, сбрасывается dst. Что делать, как быть? А в момент git push Gitlab выдаёт ссылку, где в GET параметрах указана src ветка (она то уж точно известна ему). Если использовать именно эту ссылку для создания merge request, то появится интерфейс вбивания комментария к merge запросу, но в котором если нажать на change branches, то появится точно такое же меню выбора src/dst веток, но которое уже будет работать! Вмержить только часть коммитов -- неа, нельзя. Если только не руками, конечно же. Про сам интерфейс просмотра изменений, где нельзя увидеть всю историю push-ей и изменений коммитов -- молчу. Точнее вроде бы в теории может быть и можно, видя что в URL-е есть всякие start_sha параметры есть, но мне использовать его GET параметры как CLI что ли какой-то? Я уж понятия не имею Github такой же или это Gitlab такой неюзабельный и корявый (или наш instance такой), но... работать с этим нельзя. Как бы мне не нравился Gerrit своей Java-природой, дикими тормозами (хотя... меньшими чем Gitlab) из-за JS-а, но в нём можно делать ревью по человечески (c6f4f67e4f265306dfc762acfc0a22580c690cc5). Я то вообще написал плагин для Vim-а чтобы ещё сильнее упростить и сделать этот процесс более удобным. Но таких глюков и неработоспособностей как в Gitlab в Gerrit нету. А с другим коллегой на работе я просто по почте переписку вёл, отправляя "ссылки" на свои обновлённые ветки -- это ещё более удобный способ. Но требующий чтобы собеседники умели пользоваться email-ом (а для этого нужен и работающий почтовый клиент само собой). Вот и выходит: на одной чаше весов требование использования email-а и удобство ревью и обсуждения патчей, а на другой чаше... почти неюзабельная возможность работы. Ну и где-то ближе к середине Gerrit (и похожие на него решения), который и не совсем удобен, но и не совсем неюзабелен.
From: kmeaw Date: 2021-01-19 23:11:37Z Если не нравится веб-интерфейс GitLab, то можно не использовать его. У него есть документированный API: https://docs.gitlab.com/ee/api/api_resources.html Если есть какая-то удобная форма отчётов, то можно с помощью CI или webhooks сделать робота, который будет их рассылать по почте. Или даже совершать активные действия от имени пользователя, API позволяет делегировать действия роботам. Ещё мне нравится использовать gitlab-rails console, например: irb(main):008:0> User.pluck(:commit_email).compact.map{|e| e.split('@').last.downcase}.tally.max_by{|k,v| v}.first => "gmail.com" Но такой интерфейс, конечно же, доступен только администраторам, и использовать его следует крайне осторожно.
From: Sergey Matveev Date: 2021-01-20 07:09:30Z
Сгенерирован: SGBlog 0.34.0