GoGPT Best VPN GoSearch

Значок OnWorks

gitweb - Интернет в облаке

Запустите gitweb в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда gitweb, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


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

СИНТАКСИС


Чтобы начать работу с gitweb, запустите git-instaweb(1) из репозитория Git. Это бы
настройте и запустите свой веб-сервер, а затем запустите веб-браузер, указывающий на gitweb.

ОПИСАНИЕ


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

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

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

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

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

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

· Создание RSS и Atom лент коммитов для любой ветки. Каналы
автоматически обнаруживается в современных веб-браузерах.

· Просмотр всего, что было изменено в ревизии, и пошаговое выполнение ревизий по очереди
раз, просматривая историю репозитория.

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

Посмотреть http://git.kernel.org/? p = git / git.git; a = дерево; f = gitweb or
http://repo.or.cz/w/git.git/tree/HEAD: / gitweb / для исходного кода gitweb, просматриваемого с помощью
сам gitweb.

КОНФИГУРАЦИЯ


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

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

наш $ projectroot = '/ путь / к / родительскому / каталогу';

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

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

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

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

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

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

· Начальные и конечные пробелы игнорируются.

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

· Поля используют измененную кодировку URI, определенную в RFC 3986, раздел 2.1 (Процентное кодирование),
а точнее «Кодировка строки запроса» (см.
http://en.wikipedia.org/wiki/Query_string#URL_кодирование), разница в том, что SP
("") можно закодировать как "+" (и, следовательно, "+" также должен быть закодирован в процентах).

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

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


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


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

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

Пример содержания:

foo.git Джо + R + Хакер +[электронная почта защищена]>
foo / bar.git O + W + Ner +[электронная почта защищена]>

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

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

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

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

#!/ Бен / ш

экспорт GITWEB_CONFIG = "gitweb_make_index.perl"
экспорт GATEWAY_INTERFACE = "CGI / 1.1"
экспорт HTTP_ACCEPT = "* / *"
экспорт REQUEST_METHOD = "ПОЛУЧИТЬ"
экспорт QUERY_STRING = "a = project_index"

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

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

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

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

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

Например git-демон(1) по умолчанию (если не используется параметр --export-all) разрешает
вытягивание только для тех репозиториев, у которых есть git-демон-экспорт-ок файл. Добавление

наш $ export_ok = "git-daemon-export-ok";

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

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

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

$ export_auth_hook = sub {
используйте Apache2 :: SubRequest ();
используйте Apache2 :: Const -compile => qw (HTTP_OK);
мой $ path = "$ _ [0] / HEAD";
мой $ r = Apache2 :: RequestUtil-> запрос;
мой $ sub = $ r-> lookup_file ($ path);
вернуть $ sub-> filename eq $ path
&& $ sub-> status == Apache2 :: Const :: HTTP_OK;
};

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

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

README.html
HTML-файл (фрагмент HTML), который включен на страницу "сводки" проекта gitweb.
внутри блочный элемент. Вы можете использовать его для более подробного описания проекта, чтобы
предоставлять ссылки (например, на домашнюю страницу проекта) и т. д. Это распознается, только если XSS
предотвращение отключено ($ prevent_xss ложно, см. gitweb.conf(5)); способ включить
README безопасно, когда включена защита от XSS, может быть проработана в будущем.

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

Безымянный репозиторий; отредактируйте этот файл, чтобы назвать его 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
переменная для этого, но файл имеет приоритет.

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

gitweb.владелец
Вы можете использовать переменную конфигурации репозитория 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 / / / : / ?

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

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

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

пересмотр
Показана редакция. По умолчанию HEAD.

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

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

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

... / gitweb.cgi / / / : / .. : / ?

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

$ feature {'виноват'} {'по умолчанию'} = [1];

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

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

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

головы, пульты
Перечисляет все локальные или все ветки удаленного отслеживания в данном репозитории.

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

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

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

blob_plain
Возвращает необработанные данные для файла в указанном репозитории по указанному пути и версии.
Ссылки на это действие отмечены сырье.

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

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

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

совершить, commitdiff
Показывает информацию о конкретном коммите в репозитории. В совершать просмотр шоу
подробнее о коммите, коммидифф действие показывает набор изменений для
данный коммит.

заплата
Возвращает фиксацию в обычном текстовом почтовом формате, подходящем для применения с мерзавец(1).

день
Отображение определенного аннотированного тега (объекта тега).

журнал, короткий журнал
Показывает информацию журнала (сообщение фиксации или просто тему фиксации) для данной ветки
(начиная с данной ревизии).

The короткий журнал вид более компактный; он показывает одну фиксацию на строку.

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

Этот взгляд похож на короткий журнал Посмотреть.

rss, атом
Создает RSS (или Atom) поток изменений в репозиторий.

ВЕБ СЕРВЕР КОНФИГУРАЦИЯ


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

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

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

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


Индексы опций FollowSymlinks ExecCGI
не AllowOverride None
Разрешить заказ, отрицать
Позвольте от всех


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

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

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

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

Псевдоним / perl "/ var / www / perl"


Perl-скрипт SetHandler
PerlResponseHandler ModPerl :: Реестр
PerlOptions + ParseHeaders
Индексы опционов FollowSymlinks + ExecCGI
не AllowOverride None
Разрешить заказ, отрицать
Позвольте от всех


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

http://server/perl/gitweb.cgi

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

ФастКгиСервер /usr/доля/gitweb/gitweb.cgi
ScriptAlias ​​/ gitweb /usr/доля/gitweb/gitweb.cgi

Псевдоним / gitweb / static / USR / доля / gitweb / статический
<Каталог / USR / доля / gitweb / статический>
SetHandler обработчик по умолчанию


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

http://server/gitweb

ADVANCED Разработка SERVER УСТАНОВКА


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

Один URL для гитвеб и для выборка
Если вы хотите иметь один URL-адрес как для gitweb, так и для репозиториев http: //, вы можете
настроить Apache следующим образом:


Имя сервера git.example.org
DocumentRoot / pub / git
SetEnv GITWEB_CONFIG /etc/gitweb.conf

# включение перезаписи мода
RewriteEngine на

# сделать главную страницу внутренней перезаписью скрипта gitweb
RewriteRule ^ / $ /cgi-bin/gitweb.cgi

# сделать доступ для работы "тупых клиентов"
RewriteRule ^ / (. * \. Git / (?! /? (HEAD | info | objects | refs)). *)? $ \
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L, PT]


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

Установка переменной окружения GITWEB_CONFIG укажет gitweb использовать указанный файл
(т.е. в этом примере /etc/gitweb.conf) в качестве конфигурации для gitweb. Ты действительно не
нужно в приведенном выше примере; это требуется только в том случае, если ваш файл конфигурации находится в другом
место, чем встроенное (при компиляции gitweb) gitweb_config.perl or /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 (чтобы установить базовый URI для
относительные ссылки), поэтому он должен работать автоматически.

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

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


Имя сервера git.example.org
DocumentRoot / pub / git
SetEnv GITWEB_CONFIG /etc/gitweb.conf

# включение перезаписи мода
RewriteEngine на

# сделать главную страницу внутренней перезаписью скрипта gitweb
RewriteRule ^ / $ /cgi-bin/gitweb.cgi [QSA, L, PT]

# ищем папку public_git в доме пользователей unix
# http://git.example.org/~ /
RewriteRule ^ / \ ~ ([^ \ /] +) (/ | /gitweb.cgi)? $ /Cgi-bin/gitweb.cgi \
[QSA, E = GITWEB_PROJECTROOT:/Главная/$ 1 / public_git /, L, PT]

# http://git.example.org/+ /
#RewriteRule ^ / \ + ([^ \ /] +) (/ | /gitweb.cgi)? $ /Cgi-bin/gitweb.cgi \
[QSA, E = GITWEB_PROJECTROOT:/Главная/$ 1 / public_git /, L, PT]

# http://git.example.org/user//
#RewriteRule ^ / user / ([^ \ /] +) / (gitweb.cgi)? $ /Cgi-bin/gitweb.cgi \
[QSA, E = GITWEB_PROJECTROOT:/Главная/$ 1 / public_git /, L, PT]

# определенный список корней проекта
RewriteRule ^ / scm (/|/gitweb.cgi)? $ /Cgi-bin/gitweb.cgi \
[QSA, E = GITWEB_PROJECTROOT: / pub / scm /, L, PT]
Правило перезаписи ^/ вар(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA, E = GITWEB_PROJECTROOT: / var / git /, L, PT]

# сделать доступ для работы "тупых клиентов"
RewriteRule ^ / (. * \. Git / (?! /? (HEAD | info | objects | refs)). *)? $ \
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L, PT]


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

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

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

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

http://git.example.org/~ /

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

Если вы уже используете '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 и дополнительные статические файлы (таблица стилей, значок, JavaScript):


ServerAlias ​​git.example.com

DocumentRoot / var / www / gitweb


Параметры ExecCGI
AddHandler cgi-скрипт cgi

Индекс каталога gitweb.cgi

RewriteEngine On
RewriteCond% {} REQUEST_FILENAME!-Е
RewriteCond% {} REQUEST_FILENAME!-D
RewriteRule ^. * /Gitweb.cgi/$0 [L, PT]



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

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


ServerAlias ​​git.example.com

DocumentRoot / var / www / gitweb

AliasMatch ^ (/.*?) (\. git) (/.*)? $ / pub / git $ 1 $ 3

Параметры ExecCGI
AddHandler cgi-скрипт cgi

Индекс каталога gitweb.cgi

RewriteEngine On
RewriteCond% {} REQUEST_FILENAME!-Е
RewriteCond% {} REQUEST_FILENAME!-D
RewriteRule ^. * /Gitweb.cgi/$0 [L, PT]



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

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

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

http://git.example.com/project

обеспечит удобный доступ к gitweb.

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

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

завершится ошибкой 404.

Используйте gitweb в Интернете с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad




×
Реклама
❤️Совершайте покупки, бронируйте или заказывайте здесь — никаких затрат, что помогает поддерживать бесплатность услуг.