Git веб-интерфейсы
Материал из YourcmcWiki
Версия от 20:05, 5 апреля 2019; VitaliyFilippov (обсуждение | вклад)
TL;DR: нет в жизни счастья. Идеального Git-вьюера нет, у всех какие-то недостатки. Лидеры — Gogs, GitBlit, GitLab, Kallithea. Наиболее беспроблемный — Gogs. У GitBlit JGit (кривые хуки, нестандартный ssh порт, утечки памяти) и проблемы с поиском (огромные индексы, включаются по отдельным веткам, по умолчанию нет поиска по всем репозиториям), GitLab — ТОРМОЗ и у него тоже проблемы с поиском (поиск по регистрозависимой подстроке, поиска по всем репозитория нет вообще), у Kallithea страшный дизайн.
Название | Сайт | Демо | Язык | Поиск | Адм | Баги | Wiki | Review | PullReq | RSS | Графы | Примечания |
---|---|---|---|---|---|---|---|---|---|---|---|---|
gitweb | сайт | демо | Perl | commit, grep | да | Поиск по комменту/автору/дате, а также содержимому файлов, но без полнотекстового движка, то есть grep’ом (медленно). | ||||||
cgit | сайт | демо | C | commit | да | Клон gitweb. | ||||||
Gitblit | сайт | демо | Java | fulltext (Lucene) | да | да | .md | да | да | да | Интегрируется с различными системами аутентификации. Есть встроенный опциональный push-сервер (Java-реализация Git, хуки аж на JRuby). Есть лента активности по всем проектам, «избранное» (пометка звёздочками). В логе всегда показывает граф коммитов. Есть форканье. Есть Mirroring. Есть реализация простых «багтрекера» / «ревью», причём данные можно хранить прямо в репозитории (информация, демо-видео). Git на яве — извращение. Течёт память, процесс сервера регулярно повисает по OOM. | |
ViewGit | сайт | демо | PHP | commit | да | Клон gitweb. | ||||||
Gitalist | сайт | демо | Perl | commit | да | Функционально — клон gitweb; дизайн неплохой, но в узкую колонку по центру экрана с крупными шрифтами; требует дикую кучу зависимостей с CPAN; скорее мёртв, чем жив — пример лежит (хотя локально запустить удалось), последний коммит 1 апреля 2013. | ||||||
GitList | сайт | демо | PHP | отсутствует | да | Очень слабый клон gitweb — не умеет почти ничего. Есть, правда, статистика по коду (авторы, расширения файлов, всего файлов, всего байт). Стили github-подобные, на twitter bootstrap. | ||||||
Klaus | сайт | демо сайты | Python | отсутствует | Очень слабый просмотрщик, умеет даже меньше gitweb. | |||||||
GitPHP | сайт | демо | PHP | commit | да | Клон gitweb. | ||||||
Gitprep | сайт | демо | Perl | commit(?) | да | .md | да | ± | Неполный клон GitHub; есть форканье, архивы, управление ssh-ключами, в 2.0 есть pull request’ы, поиск. Нет RSS. По-видимому, используется push-сервер и отсутствует интеграция с внешними базами данных пользователей. | |||
Gitbucket | сайт | демо | Scala | commit, grep(?) | да | да | да (.md, asciidoc, pages) | да | да | да | Практически полнофункциональный клон Github, даже API совместимо. Git, как водится, Java’овый, как в Gitblit (JGit), то есть нормальные хуки не поставишь. Есть плагины: оповещения о коммитах на email, бэкап базы данных, Gist (сниппеты), Pages (типа вики), оповещения на рабочем столе, поддержка AsciiDoc, bugspots | |
GitLab | сайт | демо | Ruby | commit, grep | да | да | да | да | да | да | ± | Нечто похожее на клон GitHub. Есть вагон и тележка всяких дополнительных приблуд типа багтрекера, Wiki, Continuous Integration, Snippet’ов и тому подобного. Написан на Ruby, и, следовательно, ТОРМОЗИТ! Встроенный Push-сервер, использующий стандартный git (можно использовать обычные хуки) и стандартный ssh (на стандартном порту 22), авторизация через SSH-ключи. Умеет LDAP. С версии 6.0 есть платная версия, и Mirroring только в ней. Нет поиска по коммитам во всех репозиториях, только по одному явно выбранному; текст поиска — регистрозависимый регэксп, так что «bug 40933», «Bug 40933» и даже «Bug 40933» (два пробела) — с точки зрения поиска разные строки. |
Gitorious | сайт | демо | Ruby | commit | да | .md | да | да | да | Открытый код | ||
|
сайт | выпилено | Python | fulltext (Whoosh) | да | да | да | да | да | да | Изначально создан для Mercurial. Различные методы аутентификации — присутствуют. До версии 1.7.2 был GPL’ным, имел стрёмный дизайн и умел все перечисленные фичи (демо было на demo.rhodecode.org и там как раз дизайн был нормальный), потом его сделали полностью платным (и сразу были посланы куда подальше; появился GPL’ный форк — Kallithea), с версии 4.0 вернули бесплатную версию с неполным функционалом, но демо-сайта теперь нет. | |
Kallithea | сайт | демо | Python | fulltext (Whoosh) | да | да | да | да | да | да | да | Форк последнего GPL’ного RhodeCode. Теоретически из этого следует, что все фичи RhodeCode должен иметь. Умеет строить графы (показываются в Changelog автоматом) — может быть, и RhodeCode умел?.. Поиск полнотекстовый, по содержимому файлов в последней ревизии и по комментариям к коммитам. Индексы нормальные, дикого места не занимают. Дефолтная тема блевотно-зелёная. Других пока не видел. |
Indefero | сайт | демо | PHP | отсутствует | да | да | да | да | Клон Google Code. Умеет LDAP. Также умеет другие системы контроля версий: Mercurial, SVN и monotone O_o | |||
SCM Manager | сайт | пример | Java | отсутствует | да | Есть поддержка SVN, немало плагинов — интеграция с багтрекерами, CI, LDAP и т. п. Но дизайн дико стрёмный, так как сделан на постылом ExtJS — AJAX во все поля, самодельные вкладочки, наношрифты, стандартное ExtJS’овское оформление и т. п. Какой-либо поиск по коммитам, похоже, отсутствует, о графах коммитов не стоит и мечтать. | ||||||
|
сайт | демо | Go | commit | да | да | .md | да | Внимание: сдох (не развивается), есть форк - Gitea. Код + список фич. Дизайн сильно похож, хоть и не идентичен, гитхабу. Дополнительно умеет форканье, архивы, ленту активности, отслеживание (watching), хуки, почтовые уведомления, Gravatar и вход через социальные сети либо LDAP, SMTP (O_o) либо фронтенд (то есть видимо, через заголовок). А, ещё теги как «релизы» показывает. | |||
Gitea | сайт | демо | Go | fulltext | да | да | .md | да | да | да | Список фич. Форк Gogs. Много новых фич, в том числе полнотекстовый поиск через Bleve, git-lfs (large file storage), графы коммитов и даже LDAP. Звучит как почти идеал! |
В тему — есть ещё ungit, на node.js. Но по-видимому, это скорее веб-клиент, чем серверный веб-интерфейс.