Gitlab неюзабельное говно

Что: 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 (и похожие на него решения),
который и не совсем удобен, но и не совсем неюзабелен.

оставить комментарий

комментарий 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


>Если не нравится веб-интерфейс GitLab, то можно не использовать его. У
>него есть документированный API:

Вместо того чтобы изучать ещё и его API и писать софт для него... проще
не пытаться использовать, ибо был бы хоть какой профит. Ведь всё что я
описал делается поверх git+email. Благо никто не заставляет на работе
использовать Gitlab -- в нём просто хранятся репозитории.

>Но такой интерфейс, конечно же, доступен только администраторам, и
>использовать его следует крайне осторожно.

Есть знакомые которые это хотели использовать и им администраторы
отказали в доступе :-)

Сгенерирован: SGBlog 0.34.0