Изменения

Git веб-интерфейсы

4573 байта добавлено, 08:08, 19 ноября 2019
gitea.io и try.gitea.io лежат с переменным успехом, есть альтернативный gitea.com (но нет try.gitea.com)
.bad { color: white; background: red; }
</style></html>
 
{{Box|{{Note}} TL;DR: Нормального поиска нет нигде. В остальном Gogs и Gitea наиболее удобные и легковесные.}}
{| class="wikitable gitint"
| [https://git.wikimedia.org/ демо]
| Java
|class=good| commit, плохой fulltext (Lucene)
|class=good| да
|class=good| да
| <abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr>
|
|
|
|
|class=good| да
|class=good| да
|class=good| да| Интегрируется с различными системами аутентификации. Есть встроенный опциональный push-сервер (Java-реализация Git, хуки аж на JRuby). Есть лента активности по всем проектам, «избранное» (пометка звёздочками). В логе всегда показывает граф коммитов (только в бета-версии 1.4Есть форканье.0Есть Mirroring. Есть реализация простых «багтрекера» / «ревью», причём данные можно хранить прямо в 1репозитории ([http://gitblit.3com/tickets_overview.2 поддержки нетhtml информация], [http://vimeo.com/86164723 демо-видео]).'''Git на яве — извращение. Течёт память, процесс сервера регулярно повисает по OOM.'''
|-
| ViewGit
|
| Очень слабый клон gitweb — не умеет почти ничего. Есть, правда, статистика по коду (авторы, расширения файлов, всего файлов, всего байт). Стили github-подобные, на twitter bootstrap.
|-
| Klaus
| [https://github.com/jonashaag/klaus/ сайт]
| [https://github.com/jonashaag/klaus/wiki/Sites-using-klaus демо сайты]
| Python
|class=bad| отсутствует
|
|
|
|
|
|
|
| Очень слабый просмотрщик, умеет даже меньше gitweb.
|-
| GitPHP
|-
| Gitprep
| [http://www.gitprep.orgyukikimoto.com/ сайт]| [http://perlcodesample.sakura.ne.jp/gitprep/gitprep.cgi демо]
| Perl
|class=bad| отсутствуетcommit(?)
|class=good| да
|
| <abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr>
|
|class=good| да
|
| ±
| Неполный клон GitHub; есть форканье, архивы, управление ssh-ключами, в 2.0 есть pull request’ы, поиск. Нет RSS. По-видимому, используется push-сервер и отсутствует интеграция с внешними базами данных пользователей.
|-
|Gitbucket
|[https://gitbucket.github.io/gitbucket-news/ сайт]
|[https://gitbucket.herokuapp.com/ демо]
|Scala
|commit, grep(?)
|class=good| да
|class=good| да
|class=good| да (<abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr>, asciidoc, pages)
|
|class=good| да| Визуальный class=good| да|class=good| да|Практически полнофункциональный клон GitHub; есть форканьеGithub, архивыдаже API совместимо. Не хватает RSSGit, поиска и pull request’овкак водится, Java’овый, как в Gitblit (JGit), то есть нормальные хуки не поставишь.Есть плагины: оповещения о коммитах на email, бэкап базы данных, Gist (сниппеты), Pages (типа вики), оповещения на рабочем столе, поддержка AsciiDoc, bugspots
|-
| GitLab
| [http://demo.gitlab.com демо]
| Ruby
| commit, grep
|class=good| да
|class=good| да
|class=good| да
|class=good| да
|<abbr title="Кривоватая поддержка, графы отображаются в отдельном интерфейсе">±</abbr>| (неполный) Нечто похожее на клон GitHub. Неотрубаемый встроенный Есть вагон и тележка всяких дополнительных приблуд типа багтрекера, Wiki, Continuous Integration, Snippet’ов и тому подобного. Написан на Ruby, и, следовательно, ТОРМОЗИТ! Встроенный Push-сервер, использующий стандартный git (можно использовать обычные хуки) и стандартный ssh (на стандартном порту 22), авторизация через SSH-ключи. Умеет LDAP. С версии 6.0 есть платная версия, нои Mirroring только в ней. Нет поиска по коммитам во всех репозиториях, вродетолько по одному явно выбранному; текст поиска — регистрозависимый регэксп, открытость пока не пострадалатак что «bug 40933», «Bug 40933» и даже «Bug &nbsp;40933» (два пробела) — с точки зрения поиска разные строки.
|-
| Gitorious
|class=good| да
|
| Открытый код <s>сервиса Gitorious</s> (куплен GitLab’ом и будет остановлен). Review плюс-минус, в виде merge request’ов. Есть управление SSH-ключамии, опять-таки, неотрубаемый push-сервер и отсутствие интеграции с внешними БД пользователей.
|-
| <s>RhodeCode</s>
|class=good| да
|
| Основная поддержка — Изначально создан для Mercurial. Визуальная тема оформления — страшный отстой (на демо была нормальная, но её нет в комплекте поставки)Различные методы аутентификации — присутствуют. Последняя нормальная GPL версия — До версии 1.7.2 (был GPL’ным, имел стрёмный дизайн и умел все перечисленные фичи имеет); более новые — исключительно платные, так что ну его нафиг. Демо раньше (демо было на demo.rhodecode.orgи там как раз дизайн был нормальный), потом его сделали полностью платным (и сразу были посланы куда подальше; появился GPL’ный форк — Kallithea), с версии 4.0 вернули бесплатную версию с неполным функционалом, но демо-сайта теперь нет.|-| Kallithea| [http://kallithea-scm.org/ сайт]| [https://kallithea-scm.org/repos/kallithea/ демо]| Python|class=good| fulltext (Whoosh)|class=good| да|class=good| да|class=good| да|class=good| да|class=good| да|class=good| да|class=good| да| Форк последнего GPL’ного RhodeCode. Теоретически из этого следует, что все фичи RhodeCode должен иметь. Умеет строить графы (показываются в Changelog автоматом) — может быть, и RhodeCode умел?.. Поиск полнотекстовый, по содержимому файлов в последней ревизии и по комментариям к коммитам. Индексы нормальные, дикого места не занимают. Дефолтная тема блевотно-зелёная. Других пока не видел.
|-
| Indefero
|
|
| Клон Google Code. Умеет LDAP. Также умеет другие системы контроля версий: Mercurial, SVN и monotone O_o|-| SCM Manager| [http://www.scm-manager.org/ сайт]| [https://source.csc.fi/scm/ пример]| Java|class=bad| отсутствует|class=good| да||||||| Есть поддержка SVN, немало плагинов — интеграция с багтрекерами, CI, LDAP и т. п. Но дизайн дико стрёмный, так как сделан на постылом ExtJS — AJAX во все поля, самодельные вкладочки, наношрифты, стандартное ExtJS’овское оформление и т. п. Какой-либо поиск по коммитам, похоже, отсутствует, о графах коммитов не стоит и мечтать.|-| <s>Gogs</s>| [http://gogs.io сайт]| [https://try.gogs.io/ демо]| Go| commit|class=good| да|class=good| да| <abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr>||class=good| да||| Внимание: сдох (не развивается), есть форк - Gitea. [https://github.com/gogits/gogs Код + список фич]. Дизайн сильно похож, хоть и не идентичен, гитхабу. Дополнительно умеет форканье, архивы, ленту активности, отслеживание (watching), хуки, почтовые уведомления, Gravatar и вход через социальные сети либо LDAP, SMTP (O_o) либо фронтенд (то есть видимо, через заголовок). А, ещё теги как «релизы» показывает.|-| Gitea| [http://gitea.io сайт1] [http://gitea.com сайт2]| [https://try.gitea.io/ демо]| Go| commit|class=good| да|class=good| да| <abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr>|class=good| да|class=good| да||class=good| да| [https://docs.gitea.io/en-us/comparison/ Список фич]. Форк Gogs. Есть новые фичи, например, git-lfs (large file storage), графы коммитов и онлайн-редактор кода. Есть и полнотекстовый поиск по коду, но сделан он очень плохо, через [https://github.com/blevesearch/bleve Bleve], индексирует медленно и жрёт память. А нечего было придумывать - лучше бы заюзали просто PostgreSQL-ный поиск.
|}
В тему — есть ещё [https://github.com/FredrikNoren/ungit ungit], на node.js. Но по-видимому, это скорее веб-клиент, чем серверный веб-интерфейс.
== Допилить ViewVC? == Кстати о птичках — можно же допилить поддержку Git (и hg, если охота) к ViewVC! И это совсем не сложно. Базовые фичи (интерфейс к репозиторию)[[Категория:* Чтение коммитов, открытие файла, annotate (увы, только через вызов консольного git’а)* Commit hookПосле чего оно уже, в принципе, становится юзабельным, и сразу имеет офигенский поиск (уже мною реализованный на Sphinx’е). И, кстати, будет одной из немногих систем, поддерживающих и централизованные, и децентрализованные VCSы (из вышеперечисленных такое умеет только Indefero). Однако для DVCS’ов всё-таки хочется:* Граф коммитов (индексируемый в базу) Правда, чтобы оно было похоже на Gitlab и ему подобных, нужны «активные» фичи:* Code review — комментарии к коммитам и к строчкам кода* Личные репозитории, возможность разграничения прав на них (элементарно путём POSIX ACL)* Возможно, какая-нибудь статистика по репозиториям* Возможно, открывать на главной страницы ленту последних коммитов* Возможно, как-то парсить reflog’и, чтобы понимать, в какую ветку push’ился коммит* README и отображение подмножества разметки MediaWiki (а то и просто ?action=render) Зато при этом:* — Багтрекер и Wiki не нужны вообще* — Клонирование одним тыком малополезно* — Pull request’ы при наличии Code review тоже малополезны, так как workflow не корпоративный* — Онлайн-редактор файлов в репозитории из браузера не нужен* — Заметки типа Gist’ов — малополезны* — Push-сервер не нужен, так как можно юзать стандартный ssh в chroot, и даже с krb5 доменной авторизацией* — От лент активности (кроме коммитов, ленты которых и так есть) в связи с отсутствием «социальных» фич тоже проку малоРазработка]]
3
правки