Git веб-интерфейсы — различия между версиями
Материал из YourcmcWiki
м |
Avissian (обсуждение | вклад) (gitea.io и try.gitea.io лежат с переменным успехом, есть альтернативный gitea.com (но нет try.gitea.com)) |
||
(не показано 57 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | {| class="wikitable" | + | <html><style> |
+ | .gitint td { text-align: center; } | ||
+ | .gitint td:last-child { text-align: left; } | ||
+ | .good { color: white; background: #0a0; } | ||
+ | .bad { color: white; background: red; } | ||
+ | </style></html> | ||
+ | |||
+ | {{Box|{{Note}} TL;DR: Нормального поиска нет нигде. В остальном Gogs и Gitea наиболее удобные и легковесные.}} | ||
+ | |||
+ | {| class="wikitable gitint" | ||
|- | |- | ||
! Название | ! Название | ||
Строка 5: | Строка 14: | ||
! Демо | ! Демо | ||
! Язык | ! Язык | ||
− | ! <abbr title="commit = поиск по комментарию | + | ! <abbr title="commit = поиск по комментарию и метаданным коммита, grep = поиск "перебором" по всем файлам, fulltext = быстрый поиск по содержимому файлов с помощью полнотекстового движка">Поиск</abbr> |
− | ! <abbr title="Создание/удаление репозиториев, управление правами доступами"> | + | ! <abbr title="Создание/удаление репозиториев, управление правами доступами">Адм</abbr> |
! Баги | ! Баги | ||
! Wiki | ! Wiki | ||
! Review | ! Review | ||
! <abbr title="Запросы на слияние (push/pull requests в разной терминологии)">PullReq</abbr> | ! <abbr title="Запросы на слияние (push/pull requests в разной терминологии)">PullReq</abbr> | ||
+ | ! RSS | ||
+ | ! Графы | ||
! Примечания | ! Примечания | ||
|- | |- | ||
| gitweb | | gitweb | ||
− | | https://git.wiki.kernel.org/index.php/Gitweb | + | | [https://git.wiki.kernel.org/index.php/Gitweb сайт] |
− | | https://gitweb.torproject.org/ | + | | [https://gitweb.torproject.org/ демо] |
| Perl | | Perl | ||
| commit, grep | | commit, grep | ||
Строка 22: | Строка 33: | ||
| | | | ||
| | | | ||
+ | | | ||
+ | |class=good| да | ||
| | | | ||
| Поиск по комменту/автору/дате, а также содержимому файлов, но без полнотекстового движка, то есть grep’ом (медленно). | | Поиск по комменту/автору/дате, а также содержимому файлов, но без полнотекстового движка, то есть grep’ом (медленно). | ||
|- | |- | ||
| cgit | | cgit | ||
− | | http://hjemli.net/git/cgit/ | + | | [http://hjemli.net/git/cgit/ сайт] |
− | | http://cgit.freedesktop.org/ | + | | [http://cgit.freedesktop.org/ демо] |
| C | | C | ||
| commit | | commit | ||
Строка 34: | Строка 47: | ||
| | | | ||
| | | | ||
+ | | | ||
+ | |class=good| да | ||
| | | | ||
| Клон gitweb. | | Клон gitweb. | ||
|- | |- | ||
| Gitblit | | Gitblit | ||
− | | http://gitblit.com | + | | [http://gitblit.com сайт] |
− | | https://git.wikimedia.org/ | + | | [https://git.wikimedia.org/ демо] |
| Java | | Java | ||
− | | | + | |commit, плохой fulltext |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
− | | | + | | <abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr> |
− | | | + | |
| | | | ||
− | | Интегрируется с различными системами аутентификации. | + | |class=good| да |
+ | |class=good| да | ||
+ | |class=good| да | ||
+ | | Интегрируется с различными системами аутентификации. Есть встроенный опциональный push-сервер (Java-реализация Git, хуки аж на JRuby). Есть лента активности по всем проектам, «избранное» (пометка звёздочками). В логе всегда показывает граф коммитов. Есть форканье. Есть Mirroring. Есть реализация простых «багтрекера» / «ревью», причём данные можно хранить прямо в репозитории ([http://gitblit.com/tickets_overview.html информация], [http://vimeo.com/86164723 демо-видео]). '''Git на яве — извращение. Течёт память, процесс сервера регулярно повисает по OOM.''' | ||
|- | |- | ||
| ViewGit | | ViewGit | ||
− | | http://viewgit.fealdia.org/ | + | | [http://viewgit.fealdia.org/ сайт] |
− | | https://os.inf.tu-dresden.de/~mroi/git/ | + | | [https://os.inf.tu-dresden.de/~mroi/git/ демо] |
| PHP | | PHP | ||
| commit | | commit | ||
Строка 58: | Строка 75: | ||
| | | | ||
| | | | ||
+ | | | ||
+ | |class=good| да | ||
| | | | ||
| Клон gitweb. | | Клон gitweb. | ||
|- | |- | ||
| Gitalist | | Gitalist | ||
− | | http://www.gitalist.com/ | + | | [http://www.gitalist.com/ сайт] |
− | | http://example.gitalist.com/ | + | | [http://example.gitalist.com/ демо] |
| Perl | | Perl | ||
− | | | + | | commit |
| | | | ||
| | | | ||
Строка 71: | Строка 90: | ||
| | | | ||
| | | | ||
− | | | + | |class=good| да |
+ | | | ||
+ | | Функционально — клон gitweb; дизайн неплохой, но в узкую колонку по центру экрана с крупными шрифтами; требует дикую кучу зависимостей с CPAN; скорее мёртв, чем жив — пример лежит (хотя локально запустить удалось), последний коммит 1 апреля 2013. | ||
|- | |- | ||
| GitList | | GitList | ||
− | | http://gitlist.org/ | + | | [http://gitlist.org/ сайт] |
− | | http://repo.blindmikey.com/oEdit.git/ | + | | [http://repo.blindmikey.com/oEdit.git/ демо] |
| PHP | | PHP | ||
− | | отсутствует | + | |class=bad| отсутствует |
| | | | ||
| | | | ||
| | | | ||
| | | | ||
+ | | | ||
+ | |class=good| да | ||
| | | | ||
| Очень слабый клон gitweb — не умеет почти ничего. Есть, правда, статистика по коду (авторы, расширения файлов, всего файлов, всего байт). Стили github-подобные, на twitter bootstrap. | | Очень слабый клон gitweb — не умеет почти ничего. Есть, правда, статистика по коду (авторы, расширения файлов, всего файлов, всего байт). Стили github-подобные, на twitter bootstrap. | ||
+ | |- | ||
+ | | Klaus | ||
+ | | [https://github.com/jonashaag/klaus/ сайт] | ||
+ | | [https://github.com/jonashaag/klaus/wiki/Sites-using-klaus демо сайты] | ||
+ | | Python | ||
+ | |class=bad| отсутствует | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | Очень слабый просмотрщик, умеет даже меньше gitweb. | ||
|- | |- | ||
| GitPHP | | GitPHP | ||
− | | http://www.gitphp.org/ | + | | [http://www.gitphp.org/ сайт] |
− | | http://source.gitphp.org/ | + | | [http://source.gitphp.org/ демо] |
| PHP | | PHP | ||
| commit | | commit | ||
Строка 94: | Строка 131: | ||
| | | | ||
| | | | ||
+ | | | ||
+ | |class=good| да | ||
| | | | ||
| Клон gitweb. | | Клон gitweb. | ||
|- | |- | ||
| Gitprep | | Gitprep | ||
− | | http:// | + | | [http://gitprep.yukikimoto.com/ сайт] |
− | | http://perlcodesample.sakura.ne.jp/gitprep.cgi | + | | [http://perlcodesample.sakura.ne.jp/gitprep/gitprep.cgi демо] |
| Perl | | Perl | ||
− | | | + | | commit(?) |
− | | | + | |class=good| да |
| | | | ||
− | | Markdown | + | | <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, даже API совместимо. Git, как водится, Java’овый, как в Gitblit (JGit), то есть нормальные хуки не поставишь. Есть плагины: оповещения о коммитах на email, бэкап базы данных, Gist (сниппеты), Pages (типа вики), оповещения на рабочем столе, поддержка AsciiDoc, bugspots | ||
|- | |- | ||
| GitLab | | GitLab | ||
− | | http://gitlab.org/ | + | | [http://gitlab.org/ сайт] |
− | | http://demo.gitlab.com | + | | [http://demo.gitlab.com демо] |
| Ruby | | Ruby | ||
− | | commit | + | | commit, grep |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
− | | | + | |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 40933» (два пробела) — с точки зрения поиска разные строки. | ||
|- | |- | ||
| Gitorious | | Gitorious | ||
− | | http://gitorious.org/ | + | | [http://gitorious.org/ сайт] |
− | | http://gitorious.org/ | + | | [http://gitorious.org/ демо] |
| Ruby | | Ruby | ||
| commit | | commit | ||
− | | | + | |class=good| да |
| | | | ||
− | | | + | | <abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr> |
+ | |class=good| да | ||
+ | |class=good| да | ||
+ | |class=good| да | ||
| | | | ||
− | + | | Открытый код <s>сервиса Gitorious</s> (куплен GitLab’ом и будет остановлен). Review плюс-минус, в виде merge request’ов. Есть управление SSH-ключами и, опять-таки, неотрубаемый push-сервер и отсутствие интеграции с внешними БД пользователей. | |
− | | Открытый код сервиса Gitorious. Review плюс-минус, в виде merge request’ов. Есть управление SSH-ключами. | + | |
|- | |- | ||
| <s>RhodeCode</s> | | <s>RhodeCode</s> | ||
− | | http://rhodecode.org/ | + | | [http://rhodecode.org/ сайт] |
− | | выпилено | + | | выпилено |
| Python | | Python | ||
− | | | + | |class=good| fulltext (Whoosh) |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
+ | | | ||
+ | | Изначально создан для Mercurial. Различные методы аутентификации — присутствуют. До версии 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 | | Indefero | ||
− | | http://www.indefero.net/ | + | | [http://www.indefero.net/ сайт] |
− | | http:// | + | | [http://projects.ceondo.com/p/indefero/ демо] |
| PHP | | PHP | ||
− | | | + | |class=bad| отсутствует |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
− | | | + | |class=good| да |
| | | | ||
− | | Клон Google Code. Также умеет Mercurial, SVN и monotone O_o | + | | |
+ | | | ||
+ | | Клон 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. Но по-видимому, это скорее веб-клиент, чем серверный веб-интерфейс. | В тему — есть ещё [https://github.com/FredrikNoren/ungit ungit], на node.js. Но по-видимому, это скорее веб-клиент, чем серверный веб-интерфейс. | ||
− | + | [[Категория:Разработка]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Текущая версия на 11:08, 19 ноября 2019
TL;DR: Нормального поиска нет нигде. В остальном Gogs и Gitea наиболее удобные и легковесные.
Название | Сайт | Демо | Язык | Поиск | Адм | Баги | Wiki | Review | PullReq | RSS | Графы | Примечания |
---|---|---|---|---|---|---|---|---|---|---|---|---|
gitweb | сайт | демо | Perl | commit, grep | да | Поиск по комменту/автору/дате, а также содержимому файлов, но без полнотекстового движка, то есть grep’ом (медленно). | ||||||
cgit | сайт | демо | C | commit | да | Клон gitweb. | ||||||
Gitblit | сайт | демо | Java | commit, плохой fulltext | да | да | .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 | сайт1 сайт2 | демо | Go | commit | да | да | .md | да | да | да | Список фич. Форк Gogs. Есть новые фичи, например, git-lfs (large file storage), графы коммитов и онлайн-редактор кода. Есть и полнотекстовый поиск по коду, но сделан он очень плохо, через Bleve, индексирует медленно и жрёт память. А нечего было придумывать - лучше бы заюзали просто PostgreSQL-ный поиск. |
В тему — есть ещё ungit, на node.js. Но по-видимому, это скорее веб-клиент, чем серверный веб-интерфейс.