Spec-Zone.ru › Git

gitweb

Имя

gitweb — Веб-интерфейс Git (веб-фронтенд для Git-репозиториев)

Синтаксис

Для начала работы с gitweb запустите git-instaweb[1] из Git-репозитория. Это настроите и запустит ваш веб-сервер, и запустит веб-браузер, указывая адрес gitweb.

Описание

Gitweb предоставляет веб-интерфейс к Git-репозиториям. Его возможности включают:

  • Просмотр нескольких Git-репозиториев с общим корнем.

  • Просмотр каждой ревизии репозитория.

  • Просмотр содержимого файлов в репозитории в любой ревизии.

  • Просмотр журнала ревизий ветвей, истории файлов и каталогов, просмотра изменений, когда и кем они были внесены.

  • Просмотр подробностей blame/аннотации любого файла (если включено).

  • Генерация RSS и Atom лент коммитов для любой ветви. Ленты автоматически обнаруживаются современными веб-браузерами.

  • Просмотр всех изменений в ревизии и переход к ревизиям по одной за раз, просмотр истории репозитория.

  • Поиск коммитов, сообщения коммитов которых соответствуют заданному поисковому запросу.

См. https://repo.or.cz/w/git.git/tree/HEAD:/gitweb/ для исходного кода gitweb, просматриваемого с помощью самого gitweb.

Настройка

Различные аспекты поведения gitweb можно контролировать через файл конфигурации gitweb_config.perl или /etc/gitweb.conf. Подробности см. в gitweb.conf[5].

Репозитории

Gitweb может отображать информацию из одного или нескольких Git-репозиториев. Эти репозитории должны находиться на локальном файловом хранилище и иметь общий корень репозитория, то есть все они должны находиться под одним родительским репозиторием (но см. также раздел «Расширенная настройка веб-сервера», подраздел «Настройка веб-сервера с несколькими корнями проектов»).

our $projectroot = '/path/to/parent/directory';

Значение по умолчанию для $projectroot — /pub/git. Вы можете изменить его во время сборки gitweb с помощью переменной конфигурации сборки GITWEB_PROJECTROOT.

По умолчанию все Git-репозитории в $projectroot отображаются и доступны gitweb. Список проектов по умолчанию генерируется путем сканирования каталога $projectroot на предмет Git-репозиториев (точнее, баз данных объектов; gitweb не интересует рабочая область и лучше всего подходит для отображения «голых» репозиториев).

Имя репозитория в gitweb — это путь к его $GIT_DIR (его базе данных объектов) относительно $projectroot. Таким образом, репозиторий $repo можно найти по адресу "$projectroot/$repo".

Формат файла списка проектов

Вместо того, чтобы gitweb находил репозитории, сканируя файловую систему, начиная с $projectroot, вы можете предоставить предварительно сгенерированный список видимых проектов, установив $projects_list на указание на текстовый файл со списком проектов (с дополнительной информацией).

Этот файл использует следующий формат:

  • Одна запись (для проекта/репозитория) на строке; продолжение строк (экранирование новой строки) не поддерживается.

  • Лидирующие и заключительные пробелы игнорируются.

  • Поля, разделенные пробелами; любой пробел может быть использован в качестве разделителя полей (правила для «split(" ", $line)» Perl).

  • Поля используют модифицированное кодирование URI, определенное в RFC 3986, раздел 2.1 (Percent-Encoding), или, скорее, «кодирование строки запроса» (см. https://en.wikipedia.org/wiki/Query_string#URL_encoding), разница заключается в том, что SP (« ») может быть закодирован как «+» (и поэтому «+» также должен быть закодирован в процентах).

    Зарезервированные символы: «%» (используется для кодирования), «+» (может использоваться для кодирования пробела), все символы пробела, как определено в Perl, включая SP, TAB и LF, (используются для разделения полей в записи).

  • В настоящее время распознаются следующие поля:

    <путь к репозиторию>

    путь к репозиторию GIT_DIR, относительно $projectroot

    <владелец репозитория>

    отображается как владелец репозитория, предпочтительно полное имя или адрес электронной почты, или оба

Вы можете сгенерировать файл индекса списка проектов с помощью действия project_index (ссылка TXT на странице списка проектов) непосредственно из gitweb; см. также раздел «Генерация списка проектов с помощью gitweb» ниже.

Пример содержимого:

foo.git       Joe+R+Hacker+<joe@example.com>
foo/bar.git   O+W+Ner+<owner@example.org>

По умолчанию этот файл управляет только тем, какие проекты отображаются на странице списка проектов (обратите внимание, что записи, которые не указывают на правильно распознанные Git-репозитории, не будут отображаться gitweb). Даже если проект не отображается на странице списка проектов, вы можете просмотреть его вручную, создав URL gitweb. Установив переменную конфигурации $strict_export (см. gitweb.conf[5]) в истинное значение, можно разрешить просмотр только тех репозиториев, которые также отображаются на странице обзора (т. е. доступны только проекты, явно указанные в файле списка проектов).

Генерация списка проектов с помощью gitweb

Предполагается, что GITWEB_CONFIG имеет значение по умолчанию Makefile, а именно gitweb_config.perl. Поместите следующее в файл gitweb_make_index.perl.

read_config_file("gitweb_config.perl");
$projects_list = $projectroot;

Затем создайте следующий скрипт для получения списка проектов в формате, подходящем для переменной конфигурации сборки GITWEB_LIST (или переменной $projects_list в конфигурации gitweb):

#!/bin/sh

export GITWEB_CONFIG="gitweb_make_index.perl"
export GATEWAY_INTERFACE="CGI/1.1"
export HTTP_ACCEPT="*/*"
export REQUEST_METHOD="GET"
export QUERY_STRING="a=project_index"

perl -- /var/www/cgi-bin/gitweb.cgi

Запустите этот скрипт и сохраните его вывод в файл. Этот файл можно использовать в качестве файла списка проектов, что означает, что вы можете установить $projects_list на его имя файла.

Управление доступом к Git-репозиториям

По умолчанию все Git-репозитории в $projectroot видны и доступны gitweb. Однако вы можете настроить, как gitweb управляет доступом к репозиториям.

  • Как описано в разделе «Формат файла списка проектов», вы можете контролировать, какие проекты видны, выборочно включая репозитории в файл списка проектов и установив переменную конфигурации gitweb $projects_list для указания на него. При установке $strict_export, файл списка проектов можно использовать для управления тем, какие репозитории доступны.

  • Вы можете настроить gitweb так, чтобы он отображал и разрешал просмотр только явно экспортируемых репозиториев, с помощью переменной $export_ok в файле конфигурации gitweb; см. справку gitweb.conf[5]. Если она имеет истинное значение, gitweb отображает репозитории только если в его базе данных объектов существует файл с именем $export_ok (если директория содержит магический файл с именем $export_ok).

    Например, git-daemon[1] по умолчанию (если не используется опция --export-all) позволяет забирать только те репозитории, которые имеют файл git-daemon-export-ok. Добавление

    our $export_ok = "git-daemon-export-ok";

    заставляет gitweb отображать и разрешать доступ только к тем репозиториям, которые можно получить через протокол git://.

  • Наконец, можно указать произвольную подпрограмму Perl, которая будет вызываться для каждого репозитория, чтобы определить, можно ли его экспортировать. Подпрограмма получает абсолютный путь к проекту (репозиторию) в качестве единственного параметра (т. е. "$projectroot/$project").

    Например, если вы используете mod_perl для запуска скрипта и настроили аутентификацию протокола dumb HTTP для ваших репозиториев, вы можете использовать следующий хук для разрешения доступа только в том случае, если пользователь имеет право читать файлы:

    $export_auth_hook = sub {
            use Apache2::SubRequest ();
            use Apache2::Const -compile => qw(HTTP_OK);
            my $path = "$_[0]/HEAD";
            my $r    = Apache2::RequestUtil->request;
            my $sub  = $r->lookup_file($path);
            return $sub->filename eq $path
                && $sub->status == Apache2::Const::HTTP_OK;
    };

Настройка gitweb для каждого репозитория

Вы можете настроить отдельные репозитории, отображаемые в gitweb, создав файл в каталоге GIT_DIR Git-репозитория или установив переменную конфигурации репозитория (в GIT_DIR/config, см. git-config[1]).

В репозитории вы можете использовать следующие файлы:

README.html

Файл HTML (фрагмент HTML), который включается на странице «обзора» проекта gitweb внутри элемента блока <div>. Его можно использовать для более подробного описания проекта, для добавления ссылок (например, на домашнюю страницу проекта) и т. д. Он распознается только при отключенной защите от XSS ($prevent_xss имеет ложное значение, см. gitweb.conf[5]); в будущем может быть разработан способ безопасного включения README при включенной защите от XSS.

описание (или gitweb.description)

Краткое (сокращенное до $projects_list_description_width на странице списка проектов, что по умолчанию составляет 25 символов; см. gitweb.conf[5]) описание проекта (репозитория) в одну строку. Текстовый файл; HTML будет экранирован. По умолчанию устанавливается

Unnamed repository; edit this file to name it for gitweb.

из шаблона во время создания репозитория, обычно установленного в /usr/share/git-core/templates/. Можно использовать переменную конфигурации репозитория gitweb.description, но файл имеет приоритет.

категория (или gitweb.category)

Категория проекта в одну строку, используемая для группировки проектов, если $projects_list_group_categories включена. По умолчанию (файл и переменная конфигурации отсутствуют) некатегорированные проекты помещаются в категорию $project_list_default_category. Вы можете использовать переменную конфигурации репозитория gitweb.category, но файл имеет приоритет.

Переменные конфигурации $projects_list_group_categories и $project_list_default_category описаны в gitweb.conf[5]

cloneurl (или многозначное gitweb.url)

Файл с URL репозитория (используется для клонирования и получения), по одному на строке. Отображается на странице сводки проекта. Вы можете использовать многозначную переменную конфигурации репозитория gitweb.url для этого, но файл имеет приоритет.

Это усовершенствование/версия для каждого репозитория глобальной переменной конфигурации gitweb на основе префикса @git_base_url_list (см. gitweb.conf[5]).

gitweb.owner

Вы можете использовать переменную конфигурации репозитория gitweb.owner для установки владельца репозитория. Он отображается на странице списка и сводки проекта.

Если она не установлена, используется владелец каталога файловой системы (через поле GECOS, т. е. поле реального имени из getpwuid(3)), если $projects_list не установлено (gitweb сканирует $projectroot в поисках репозиториев); если $projects_list указывает на файл со списком репозиториев, то владелец проекта по умолчанию — значение из этого файла для данного репозитория.

различные gitweb.* переменные конфигурации (в конфигурации)

Прочитайте описание хеша %feature для получения подробного списка и описаний. См. также раздел «Настройка функций gitweb» в gitweb.conf[5].

Действия и URL-адреса

Gitweb может использовать URL-адреса на основе path_info (компонента) или передавать всю необходимую информацию через параметры запроса. Типичные URL-адреса gitweb разбиваются на пять компонентов:

.../gitweb.cgi/<repo>/<action>/<revision>:/<path>?<arguments>
repo

Репозиторий, на котором будет выполнено действие.

Все действия, кроме тех, которые перечисляют все доступные проекты в любой форме, требуют этого параметра.

action

Действие, которое будет выполнено. По умолчанию projects_list если repo не задан и summary в противном случае.

revision

Показывать версию. По умолчанию HEAD.

path

Путь внутри <repository>, на котором выполняется действие для тех действий, которые его требуют.

arguments

Любые аргументы, которые контролируют поведение действия.

Некоторые действия требуют или позволяют указать две версии, а иногда даже два имени путей. В самом общем виде URL-адрес gitweb, основанный на path_info (компоненте), выглядит так:

.../gitweb.cgi/<repo>/<action>/<revision-from>:/<path-from>..<revision-to>:/<path-to>?<arguments>

Каждое действие реализуется как подпрограмма и должно присутствовать в хэше %actions. Некоторые действия по умолчанию отключены и должны быть включены с помощью механизма функций. Например, чтобы включить blame представление, добавьте следующее в файл конфигурации gitweb:

$feature{'blame'}{'default'} = [1];

Действия:

Стандартные действия:

project_list

Выводит список доступных Git-репозиториев. Это команда по умолчанию, если в URL не указан репозиторий.

summary

Отображает сводку о заданном репозитории. Это команда по умолчанию, если в URL не указано действие, а указан только репозиторий.

heads
remotes

Выводит список всех локальных или всех отслеживаемых удаленных ветвей в данном репозитории.

Последний не доступен по умолчанию, если не настроен.

tags

Перечисляет все теги (легковесные и аннотированные) в данном репозитории.

blob
tree

Отображает файлы и каталоги в заданном пути репозитория в заданной версии. Это команда по умолчанию, если в URL не указано действие, а указан путь.

blob_plain

Возвращает исходные данные файла в заданном репозитории, в заданном пути и версии. Ссылки на это действие помечены raw.

blobdiff

Отображает разницу между двумя версиями одного и того же файла.

blame
blame_incremental

Отображает информацию об ответственности (также называемой аннотацией) для файла. На каждой строке отображается версия, в которой эта строка была в последний раз изменена, и пользователь, который внес изменения.

Инкрементная версия (которая, если настроена, используется автоматически при включенном JavaScript) использует Ajax для постепенного добавления информации об ответственности в содержимое заданного файла.

Это действие отключено по умолчанию по соображениям производительности.

commit
commitdiff

Отображает информацию о конкретном коммите в репозитории. commit представление отображает информацию о коммите более подробно, commitdiff действие отображает набор изменений для данного коммита.

patch

Возвращает коммит в простом текстовом формате почты, подходящем для применения с git-am[1].

tag

Отображает конкретный аннотированный тег (объект тега).

log
shortlog

Отображает информацию о логах (сообщение коммита или только предмет коммита) для заданной ветки (начиная с заданной версии).

shortlog представление более компактное; оно показывает один коммит на строке.

history

Отображает историю файла или каталога в заданном пути репозитория, начиная с заданной версии (по умолчанию HEAD, т.е. ветка по умолчанию).

Это представление аналогично shortlog представлению.

rss
atom

Генерирует ленту RSS (или Atom) изменений в репозитории.

Настройка веб-сервера

В этом разделе объясняется, как настроить некоторые распространенные веб-серверы для работы с gitweb. Во всех случаях, /path/to/gitweb в примерах — это каталог, в котором вы установили gitweb, и содержит gitweb_config.perl.

Если вы настроили веб-сервер, который здесь не указан для gitweb, пожалуйста, отправьте инструкции, чтобы они могли быть включены в будущие релизы.

Apache как CGI

Apache должен быть настроен для поддержки CGI-скриптов в каталоге, в котором установлен gitweb. Предположим, что это каталог /var/www/cgi-bin.

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
    Options Indexes FollowSymlinks ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

С этой настройкой полный путь для просмотра репозиториев будет:

http://server/cgi-bin/gitweb.cgi

Apache с mod_perl, через ModPerl::Registry

Вы можете использовать mod_perl с gitweb. Вы должны установить Apache::Registry (для mod_perl 1.x) или ModPerl::Registry (для mod_perl 2.x), чтобы включить эту поддержку.

Предполагая, что gitweb установлен в /var/www/perl, следующая настройка Apache (для mod_perl 2.x) подходит.

Alias /perl "/var/www/perl"

<Directory "/var/www/perl">
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options Indexes FollowSymlinks +ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

С этой настройкой полный путь для просмотра репозиториев будет:

http://server/perl/gitweb.cgi

Apache с FastCGI

Gitweb работает с Apache и FastCGI. Сначала вам нужно переименовать, скопировать или создать символическую ссылку gitweb.cgi на gitweb.fcgi. Предположим, что gitweb установлен в /usr/share/gitweb каталоге. Следующая настройка Apache подходит (НЕ ТЕСТИРОВАЛОСЬ!)

FastCgiServer /usr/share/gitweb/gitweb.cgi
ScriptAlias /gitweb /usr/share/gitweb/gitweb.cgi

Alias /gitweb/static /usr/share/gitweb/static
<Directory /usr/share/gitweb/static>
    SetHandler default-handler
</Directory>

С этой настройкой полный путь для просмотра репозиториев будет:

http://server/gitweb

Расширенная настройка веб-сервера

Все эти примеры используют перенаправление запросов и требуют mod_rewrite (или эквивалента; примеры ниже написаны для Apache).

Один URL для gitweb и для скачивания

Если вы хотите иметь один URL для gitweb и ваших http:// репозиториев, вы можете настроить Apache так:

<VirtualHost *:80>
    ServerName    git.example.org
    DocumentRoot  /pub/git
    SetEnv        GITWEB_CONFIG   /etc/gitweb.conf

    # turning on mod rewrite
    RewriteEngine on

    # make the front page an internal rewrite to the gitweb script
    RewriteRule ^/$  /cgi-bin/gitweb.cgi

    # make access for "dumb clients" work
    RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ \
                /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]
</VirtualHost>

Вышеуказанная конфигурация предполагает, что ваши публичные репозитории находятся в /pub/git и будут обслуживаться как http://git.domain.org/dir-under-pub-git, как клонируемый URL Git, так и как браузерный интерфейс gitweb. Если вы затем запустите git-daemon[1] с --base-path=/pub/git --export-all, то вы даже сможете использовать URL git:// с точно таким же путем.

Установка переменной окружения GITWEB_CONFIG сообщит gitweb использовать указанный файл (т.е. в данном примере /etc/gitweb.conf) в качестве конфигурации для gitweb. Вам, по сути, не нужно это в примере выше; это требуется только если ваш конфигурационный файл находится в другом месте, чем встроенный (при компиляции gitweb) gitweb_config.perl или /etc/gitweb.conf. Смотрите gitweb.conf[5] для подробностей, особенно по правилам приоритета.

Если вы используете правила перенаправления из примера, вам, возможно, также потребуется что-то вроде следующего в вашем файле конфигурации gitweb (/etc/gitweb.conf следующий пример):

@stylesheets = ("/some/absolute/path/gitweb.css");
$my_uri    = "/";
$home_link = "/";
$per_request_config = 1;

Однако в настоящее время gitweb должен создавать тег HTML base при необходимости (для установки базового URI для относительных ссылок), поэтому он должен работать автоматически.

Настройка веб-сервера с несколькими корнями проекта

Если вы хотите использовать gitweb с несколькими корнями проекта, вы можете изменить ваши файлы виртуального хоста Apache и конфигурации gitweb следующим образом.

Конфигурация виртуального хоста (в файле конфигурации Apache) должна выглядеть так:

<VirtualHost *:80>
    ServerName    git.example.org
    DocumentRoot  /pub/git
    SetEnv        GITWEB_CONFIG  /etc/gitweb.conf

    # turning on mod rewrite
    RewriteEngine on

    # make the front page an internal rewrite to the gitweb script
    RewriteRule ^/$  /cgi-bin/gitweb.cgi  [QSA,L,PT]

    # look for a public_git directory in unix users' home
    # http://git.example.org/~<user>/
    RewriteRule ^/\~([^\/]+)(/|/gitweb.cgi)?$        /cgi-bin/gitweb.cgi \
                [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]

    # http://git.example.org/+<user>/
    #RewriteRule ^/\+([^\/]+)(/|/gitweb.cgi)?$        /cgi-bin/gitweb.cgi \
                 [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]

    # http://git.example.org/user/<user>/
    #RewriteRule ^/user/([^\/]+)/(gitweb.cgi)?$        /cgi-bin/gitweb.cgi \
                 [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]

    # defined list of project roots
    RewriteRule ^/scm(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
                [QSA,E=GITWEB_PROJECTROOT:/pub/scm/,L,PT]
    RewriteRule ^/var(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
                [QSA,E=GITWEB_PROJECTROOT:/var/git/,L,PT]

    # make access for "dumb clients" work
    RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ \
                /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]
</VirtualHost>

Здесь фактический корень проекта передаётся gitweb через GITWEB_PROJECT_ROOT переменную окружения от веб-сервера, поэтому вам нужно добавить следующую строку в файл конфигурации gitweb (/etc/gitweb.conf в примере выше):

$projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/pub/git";

Примечание, что это должно быть установлено для каждого запроса, поэтому либо $per_request_config должно быть false, либо вышеупомянутое должно быть помещено в код, на который ссылается $per_request_config;

Эти конфигурации позволяют сделать два действия. Во-первых, каждый пользователь unix (<user>) сервера сможет просматривать через gitweb репозитории Git, найденные в ~/public_git/ по следующему URL:

http://git.example.org/~<user>/

Если вы не хотите этой функции на вашем сервере, просто удалите второе правило перенаправления.

Если вы уже используете mod_userdir в вашем виртуальном хосте или не хотите использовать «~» в качестве первого символа, просто прокомментируйте или удалите второе правило перенаправления и раскомментируйте одно из следующих, в зависимости от того, что вы хотите.

Во-вторых, репозитории, найденные в /pub/scm/ и /var/git/, будут доступны через http://git.example.org/scm/ и http://git.example.org/var/. Вы можете добавлять столько корней проекта, сколько вам нужно, добавляя правила перенаправления, как третье и четвёртое.

Использование PATH_INFO

Если вы включите использование PATH_INFO в gitweb, поместив

$feature{'pathinfo'}{'default'} = [1];

в ваш файл конфигурации gitweb, можно настроить сервер, чтобы он потреблял и генерировал URL-адреса в виде

http://git.example.com/project.git/shortlog/sometag

т.е. без части gitweb.cgi, используя конфигурацию, такую как следующая. Эта конфигурация предполагает, что /var/www/gitweb - это DocumentRoot вашего веб-сервера, содержит скрипт gitweb.cgi и вспомогательные статические файлы (стили, favicon, JavaScript):

<VirtualHost *:80>
        ServerAlias git.example.com

        DocumentRoot /var/www/gitweb

        <Directory /var/www/gitweb>
                Options ExecCGI
                AddHandler cgi-script cgi

                DirectoryIndex gitweb.cgi

                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^.* /gitweb.cgi/$0 [L,PT]
        </Directory>
</VirtualHost>

Правило перенаправления гарантирует, что существующие статические файлы будут правильно обслуживаться, а любой другой URL будет передан gitweb в качестве параметра PATH_INFO.

Обратите внимание, что в этом случае вам не нужны особые настройки для @stylesheets, $my_uri и $home_link, но вы теряете доступ «глупого клиента» к вашим проектам .git (описано в разделе «Один URL для gitweb и для скачивания»). Возможным решением для последнего является следующее: в вашем корневом каталоге проекта (например, /pub/git) имейте проекты, именованные **без** расширения .git (например, /pub/git/project вместо /pub/git/project.git) и настройте Apache следующим образом:

<VirtualHost *:80>
        ServerAlias git.example.com

        DocumentRoot /var/www/gitweb

        AliasMatch ^(/.*?)(\.git)(/.*)?$ /pub/git$1$3
        <Directory /var/www/gitweb>
                Options ExecCGI
                AddHandler cgi-script cgi

                DirectoryIndex gitweb.cgi

                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^.* /gitweb.cgi/$0 [L,PT]
        </Directory>
</VirtualHost>

Дополнительное AliasMatch делает так, что

http://git.example.com/project.git

обеспечит прямой доступ к каталогу Git проекта (чтобы проект можно было клонировать), а

http://git.example.com/project

предоставит доступ через удобный для человека интерфейс gitweb.

Это решение не на 100% защищено от ошибок, в том смысле, что если у проекта есть именованная ссылка (ветвь, тег), начинающаяся с git/, то пути, такие как

http://git.example.com/project/command/abranch..git/abranch

будут возвращать ошибку 404.

Ошибки

Пожалуйста, сообщайте о любых ошибках или предложениях по улучшениям на git@vger.kernel.org, поместив «gitweb» в тему письма.

См. также

gitweb.conf[5], git-instaweb[1]

gitweb/README, gitweb/INSTALL

gitweb

© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/gitweb

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API