![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Какие есть хорошие инструменты для ревью кода?
Критерии хорошести, в нулевом приближении, следующие:
- Установка on-premise.
- Одно ревью может включать несколько коммитов из разных (но заранее известных) Git-репозиториев. Коммиты каждого репозитория линейно упорядочены. Для каждого файла в ревью ревьюер может смотреть дифф любого подинтервала по своему выбору. (Как в Crucible, если бы он порядок брал из графа, а не выводил из временных меток.)
- Коммент, не являющийся ответом на другой коммент, привязывается к произвольному, в общем случае не непрерывному, подмножеству строк файла. (Как в Crucible.)
- Работает подсветка синтаксиса как минимум для C++, Python’а, Go, шелла, XML, JSON и YAML. Распознавание того, какой синтаксис применять к файлу, работает более умно, чем просто по расширению (в частности,
#!/usr/bin/python3
или#!/usr/bin/env python3
для файлов без расширения однозначно указывают на Python). - Невозможна ситуация, когда отображается строка файла N (типично документационный комментарий) с комментом к ней и при этом существует и не отображается строка N+1 (типично заголовок или прототип функции с аргументами). (То есть не как в GitLab’е.)
- Работает скроллинг средней кнопкой в Firefox’е. (А не как в Crucible —
{overflow-y: hidden; overflow-x: auto}
и привет, средней кнопкой скроллится только в стороны.)
Большая зелёная кнопка «вмёржить это в master прямо сейчас не думая» категорически нафиг не нужна.