[О блоге]
[наверх]
[пред]
[2021-01-19 14:50:08+03:00]
[6a4281c80dde3126ce414779d349aa1e0ddf67d0]
Темы: [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 (и похожие на него решения),
который и не совсем удобен, но и не совсем неюзабелен.
[оставить комментарий]
- комментарий 0:
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"
Но такой интерфейс, конечно же, доступен только администраторам, и
использовать его следует крайне осторожно.
- комментарий 1:
From: Sergey Matveev
Date: 2021-01-20 07:09:30Z
*** kmeaw [2021-01-20 02:04]:
>Если не нравится веб-интерфейс GitLab, то можно не использовать его. У
>него есть документированный API:
Вместо того чтобы изучать ещё и его API и писать софт для него... проще
не пытаться использовать, ибо был бы хоть какой профит. Ведь всё что я
описал делается поверх git+email. Благо никто не заставляет на работе
использовать Gitlab -- в нём просто хранятся репозитории.
>Но такой интерфейс, конечно же, доступен только администраторам, и
>использовать его следует крайне осторожно.
Есть знакомые которые это хотели использовать и им администраторы
отказали в доступе :-)