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

Материал из YourcmcWiki
Версия от 18:21, 27 августа 2013; VitaliyFilippov (обсуждение | вклад) (Допилить ViewVC?)

Перейти к: навигация, поиск
Название Сайт Демо Язык Поиск Созд Баги Wiki Review PullReq Примечания
gitweb https://git.wiki.kernel.org/index.php/Gitweb https://gitweb.torproject.org/ Perl commit, grep Поиск по комменту/автору/дате, а также содержимому файлов, но без полнотекстового движка, то есть grep’ом (медленно).
cgit http://hjemli.net/git/cgit/ http://cgit.freedesktop.org/ C commit Клон gitweb.
Gitblit http://gitblit.com https://git.wikimedia.org/ Java fulltext (Lucene) да Интегрируется с различными системами аутентификации.
ViewGit http://viewgit.fealdia.org/ https://os.inf.tu-dresden.de/~mroi/git/ PHP commit Клон gitweb.
Gitalist http://www.gitalist.com/ http://example.gitalist.com/ Perl  ??? Скорее мёртв, чем жив. Пример лежит.
GitList http://gitlist.org/ http://repo.blindmikey.com/oEdit.git/ PHP отсутствует Очень слабый клон gitweb - не умеет почти ничего. Есть, правда, статистика по коду (авторы, расширения файлов, всего файлов, всего байт). Стили github-подобные, на twitter bootstrap.
GitPHP http://www.gitphp.org/ http://source.gitphp.org/ PHP commit Клон gitweb.
GitLab http://gitlab.org/ http://demo.gitlab.com Ruby commit да да да да да (неполный) клон GitHub. Есть управление SSH-ключами. С версии 6.0 появится платная версия.
Gitorious http://gitorious.org/ http://gitorious.org/ Ruby commit да да да Открытый код сервиса Gitorious. Review плюс-минус, в виде merge request’ов. Есть управление SSH-ключами.
RhodeCode http://rhodecode.org/ выпилено (было demo.rhodecode.org) Python fulltext (Whoosh) да да да да да Основная поддержка — Mercurial. Визуальная тема оформления — страшный отстой. И вообще — RhodeCode теперь будет платным продуктом, так что ну его нафиг.
Indefero http://www.indefero.net/ http://www.jooria.com/scripts/demos/871 PHP  ??? да да да да Клон Google Code. Также умеет Mercurial, SVN и monotone O_o

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