Git веб-интерфейсы — различия между версиями

Материал из YourcmcWiki
Перейти к: навигация, поиск
м
м
Строка 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>
 +
 
 +
{| class="wikitable gitint"
 
|-
 
|-
 
! Название
 
! Название
Строка 5: Строка 12:
 
! Демо
 
! Демо
 
! Язык
 
! Язык
! <abbr title="commit = поиск по комментарию к коммиту, grep = поиск &quot;перебором&quot; по всем файлам, fulltext = быстрый поиск по содержимому файлов с помощью полнотекстового движка">Поиск</abbr>
+
! <abbr title="commit = поиск по комментарию и метаданным коммита, grep = поиск &quot;перебором&quot; по всем файлам, fulltext = быстрый поиск по содержимому файлов с помощью полнотекстового движка">Поиск</abbr>
! <abbr title="Создание/удаление репозиториев, управление правами доступами">Созд</abbr>
+
! <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: Строка 31:
 
|
 
|
 
|
 
|
 +
|
 +
|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: Строка 45:
 
|
 
|
 
|
 
|
 +
|
 +
|class=good| да
 
|
 
|
 
| Клон gitweb.
 
| Клон gitweb.
 
|-
 
|-
 
| Gitblit
 
| Gitblit
| http://gitblit.com
+
| [http://gitblit.com сайт]
| https://git.wikimedia.org/
+
| [https://git.wikimedia.org/ демо]
 
| Java
 
| Java
|style="color: white; background: green"| fulltext (Lucene)
+
|class=good| fulltext (Lucene)
|style="color: white; background: green"| да
+
|class=good| да
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
| Интегрируется с различными системами аутентификации.
+
|class=good| да
 +
|class=good| да
 +
| Интегрируется с различными системами аутентификации. Есть лента активности по всем проектам. В логе показывает граф коммитов.
 
|-
 
|-
 
| 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: Строка 73:
 
|
 
|
 
|
 
|
 +
|
 +
|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
 
| commit
Строка 70: Строка 87:
 
|
 
|
 
|
 
|
 +
|
 +
|class=good| да
 
|
 
|
 
| Функционально — клон gitweb; дизайн неплохой, но в узкую колонку по центру экрана с крупными шрифтами; требует дикую кучу зависимостей с CPAN; скорее мёртв, чем жив — пример лежит (хотя локально запустить удалось), последний коммит 1 апреля 2013.
 
| Функционально — клон 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
|style="color: white; background: red"| отсутствует
+
|class=bad| отсутствует
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 +
|
 +
|class=good| да
 
|
 
|
 
| Очень слабый клон gitweb — не умеет почти ничего. Есть, правда, статистика по коду (авторы, расширения файлов, всего файлов, всего байт). Стили github-подобные, на twitter bootstrap.
 
| Очень слабый клон gitweb — не умеет почти ничего. Есть, правда, статистика по коду (авторы, расширения файлов, всего файлов, всего байт). Стили github-подобные, на twitter bootstrap.
 
|-
 
|-
 
| GitPHP
 
| GitPHP
| http://www.gitphp.org/
+
| [http://www.gitphp.org/ сайт]
| http://source.gitphp.org/
+
| [http://source.gitphp.org/ демо]
 
| PHP
 
| PHP
 
| commit
 
| commit
Строка 94: Строка 115:
 
|
 
|
 
|
 
|
 +
|
 +
|class=good| да
 
|
 
|
 
| Клон gitweb.
 
| Клон gitweb.
 
|-
 
|-
 
| Gitprep
 
| Gitprep
| http://www.gitprep.org/
+
| [http://www.gitprep.org/ сайт]
| http://perlcodesample.sakura.ne.jp/gitprep.cgi
+
| [http://perlcodesample.sakura.ne.jp/gitprep.cgi демо]
 
| Perl
 
| Perl
|style="color: white; background: red"| отсутствует
+
|class=bad| отсутствует
|style="color: white; background: green"| да
+
|class=good| да
 +
|
 +
| <abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr>
 +
|
 
|
 
|
| Markdown
 
 
|
 
|
 
|
 
|
Строка 110: Строка 135:
 
|-
 
|-
 
| GitLab
 
| GitLab
| http://gitlab.org/
+
| [http://gitlab.org/ сайт]
| http://demo.gitlab.com
+
| [http://demo.gitlab.com демо]
 
| Ruby
 
| Ruby
 
| commit
 
| commit
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
 +
|class=good| да
 +
|
 
| (неполный) клон GitHub. Неотрубаемый встроенный Push-сервер, авторизация через SSH-ключи. С версии 6.0 есть платная версия, но, вроде, открытость пока не пострадала.
 
| (неполный) клон GitHub. Неотрубаемый встроенный Push-сервер, авторизация через SSH-ключи. С версии 6.0 есть платная версия, но, вроде, открытость пока не пострадала.
 
|-
 
|-
 
| Gitorious
 
| Gitorious
| http://gitorious.org/
+
| [http://gitorious.org/ сайт]
| http://gitorious.org/
+
| [http://gitorious.org/ демо]
 
| Ruby
 
| Ruby
 
| commit
 
| commit
|style="color: white; background: green"| да
+
|class=good| да
 +
|
 +
| <abbr title="Разбор Markdown в файлах внутри репозитория">.md</abbr>
 +
|class=good| да
 +
|class=good| да
 +
|class=good| да
 
|
 
|
| Markdown
 
|style="color: white; background: green"| да
 
|style="color: white; background: green"| да
 
 
| Открытый код сервиса Gitorious. Review плюс-минус, в виде merge request’ов. Есть управление SSH-ключами.
 
| Открытый код сервиса Gitorious. Review плюс-минус, в виде merge request’ов. Есть управление SSH-ключами.
 
|-
 
|-
 
| <s>RhodeCode</s>
 
| <s>RhodeCode</s>
| http://rhodecode.org/
+
| [http://rhodecode.org/ сайт]
| выпилено (было demo.rhodecode.org)
+
| выпилено
 
| Python
 
| Python
|style="color: white; background: green"| fulltext (Whoosh)
+
|class=good| fulltext (Whoosh)
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
| Основная поддержка — Mercurial. Визуальная тема оформления — страшный отстой (на демо была нормальная, но её нет в комплекте поставки). Последняя нормальная GPL версия — 1.7.2 (перечисленные фичи имеет); более новые — исключительно платные, так что ну его нафиг.
+
|class=good| да
 +
|
 +
| Основная поддержка — Mercurial. Визуальная тема оформления — страшный отстой (на демо была нормальная, но её нет в комплекте поставки). Последняя нормальная GPL версия — 1.7.2 (перечисленные фичи имеет); более новые — исключительно платные, так что ну его нафиг. Демо раньше было на demo.rhodecode.org.
 
|-
 
|-
 
| Indefero
 
| Indefero
| http://www.indefero.net/
+
| [http://www.indefero.net/ сайт]
| http://www.jooria.com/scripts/demos/871
+
| [http://projects.ceondo.com/p/indefero/ демо]
 
| PHP
 
| PHP
|style="color: white; background: red"| отсутствует
+
|class=bad| отсутствует
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
|style="color: white; background: green"| да
+
|class=good| да
 +
|
 +
|
 
|
 
|
 
| Клон Google Code. Также умеет Mercurial, SVN и monotone O_o
 
| Клон Google Code. Также умеет Mercurial, SVN и monotone O_o
 
|}
 
|}
 
RSS умеют все, кроме gitprep. Граф коммитов не показывает ни один из перечисленных O_o
 
  
 
В тему — есть ещё [https://github.com/FredrikNoren/ungit ungit], на node.js. Но по-видимому, это скорее веб-клиент, чем серверный веб-интерфейс.
 
В тему — есть ещё [https://github.com/FredrikNoren/ungit ungit], на node.js. Но по-видимому, это скорее веб-клиент, чем серверный веб-интерфейс.

Версия 15:38, 14 января 2014

Название Сайт Демо Язык Поиск Адм Баги Wiki Review PullReq RSS Графы Примечания
gitweb сайт демо Perl commit, grep да Поиск по комменту/автору/дате, а также содержимому файлов, но без полнотекстового движка, то есть grep’ом (медленно).
cgit сайт демо C commit да Клон gitweb.
Gitblit сайт демо Java fulltext (Lucene) да да да Интегрируется с различными системами аутентификации. Есть лента активности по всем проектам. В логе показывает граф коммитов.
ViewGit сайт демо PHP commit да Клон gitweb.
Gitalist сайт демо Perl commit да Функционально — клон gitweb; дизайн неплохой, но в узкую колонку по центру экрана с крупными шрифтами; требует дикую кучу зависимостей с CPAN; скорее мёртв, чем жив — пример лежит (хотя локально запустить удалось), последний коммит 1 апреля 2013.
GitList сайт демо PHP отсутствует да Очень слабый клон gitweb — не умеет почти ничего. Есть, правда, статистика по коду (авторы, расширения файлов, всего файлов, всего байт). Стили github-подобные, на twitter bootstrap.
GitPHP сайт демо PHP commit да Клон gitweb.
Gitprep сайт демо Perl отсутствует да .md Визуальный клон GitHub; есть форканье, архивы. Не хватает RSS, поиска и pull request’ов.
GitLab сайт демо Ruby commit да да да да да да (неполный) клон GitHub. Неотрубаемый встроенный Push-сервер, авторизация через SSH-ключи. С версии 6.0 есть платная версия, но, вроде, открытость пока не пострадала.
Gitorious сайт демо Ruby commit да .md да да да Открытый код сервиса Gitorious. Review плюс-минус, в виде merge request’ов. Есть управление SSH-ключами.
RhodeCode сайт выпилено Python fulltext (Whoosh) да да да да да да Основная поддержка — Mercurial. Визуальная тема оформления — страшный отстой (на демо была нормальная, но её нет в комплекте поставки). Последняя нормальная GPL версия — 1.7.2 (перечисленные фичи имеет); более новые — исключительно платные, так что ну его нафиг. Демо раньше было на demo.rhodecode.org.
Indefero сайт демо PHP отсутствует да да да да Клон Google Code. Также умеет Mercurial, SVN и monotone O_o

В тему — есть ещё 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 доменной авторизацией
  •  — От лент активности (кроме коммитов, ленты которых и так есть) в связи с отсутствием «социальных» фич тоже проку мало