?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
gitweb.conf - Gitweb( Git web 界面)配置文件
/etc/gitweb.conf,/etc/gitweb-common.conf,$ GITWEBDIR / gitweb_config.perl
用于通過 Web 查看 Git 存儲(chǔ)庫的 gitweb CGI 腳本使用 perl 腳本片段作為其配置文件。您可以使用“ our $variable = value
” 設(shè)置變量; 來自“#”字符的文本直到行尾被忽略。有關(guān)詳細(xì)信息,請(qǐng)參閱 perlsyn(1)。
一個(gè)例子:
# gitweb configuration file for http://git.example.org # our $projectroot = "/srv/git"; # FHS recommendation our $site_name = 'Example.org >> Repos';
該配置文件用于覆蓋gitweb.cgi
生成腳本時(shí)構(gòu)建到 gitweb 中的默認(rèn)設(shè)置。
雖然可以改變 gitweb CGI 本身的配置設(shè)置,但升級(jí)后這些更改將會(huì)丟失。配置設(shè)置也可以放置在 CGI 腳本所在的同一目錄下,并使用默認(rèn)名稱gitweb_config.perl
- 允許通過使用符號(hào)鏈接來使用不同配置的多個(gè) gitweb 實(shí)例。
請(qǐng)注意,可以在每個(gè)存儲(chǔ)庫而不是 gitweb 范圍內(nèi)控制某些配置:請(qǐng)參閱 gitweb [1] 聯(lián)機(jī)幫助頁上的“每個(gè)存儲(chǔ)庫 gitweb 配置”小節(jié)。
Gitweb 按以下順序從以下源讀取配置數(shù)據(jù):
內(nèi)置值(一些在構(gòu)建階段設(shè)置),
通用系統(tǒng)范圍的配置文件(默認(rèn)為/etc/gitweb-common.conf
),
每個(gè)實(shí)例配置文件(默認(rèn)gitweb_config.perl
與安裝的 gitweb 位于同一目錄中),或者如果它不存在,則系統(tǒng)范圍配置文件(默認(rèn)為備用/etc/gitweb.conf
)。
在稍后的配置文件中獲得的值會(huì)覆蓋上面序列中早先獲得的值。
所述公共系統(tǒng)范圍的配置文件,所述回退系統(tǒng)范圍的配置文件和每實(shí)例配置文件的位置被使用編譯時(shí)生成文件配置變量,分別在編譯時(shí)定義GITWEB_CONFIG_COMMON
,GITWEB_CONFIG_SYSTEM
和GITWEB_CONFIG
。
您也可以在運(yùn)行時(shí)通過設(shè)置以下的環(huán)境變量覆蓋的 GitWeb 的配置文件地點(diǎn):GITWEB_CONFIG_COMMON
,GITWEB_CONFIG_SYSTEM
和GITWEB_CONFIG
一個(gè)非空值。
配置文件的語法是 Perl 的,因?yàn)檫@些文件是通過將它們作為 Perl 代碼片段( gitweb 本身寫入的語言)來處理的。變量通常使用our
限定符(如“ our $variable = <value>;
”)來設(shè)置,以避免語法錯(cuò)誤,如果新版本的 gitweb 不再使用變量并因此停止聲明它。
您可以使用 read_config_file()子例程包含其他配置文件。例如,可能需要將 gitweb 配置與訪問控制相關(guān)聯(lián),以便通過 Gitolite( Git 存儲(chǔ)庫管理工具之一)在單獨(dú)的文件中查看存儲(chǔ)庫,例如/etc/gitweb-gitolite.conf
。要包括它,放置
read_config_file("/etc/gitweb-gitolite.conf");
在使用 gitweb 配置文件的某處,例如在每個(gè)安裝的 gitweb 配置文件中。請(qǐng)注意,read_config_file()會(huì)檢查它自己讀取的文件是否存在,如果找不到則不執(zhí)行任何操作。它還處理包含文件中的錯(cuò)誤。
完全沒有配置文件的默認(rèn)配置可能對(duì)一些安裝非常有效。盡管如此,配置文件對(duì)于以多種方式自定義或調(diào)整 gitweb 的行為很有用,除非使用可配置%features
變量明確啟用(另請(qǐng)參閱下面的“配置 gitweb 功能”部分),否則某些可選功能將不存在。
一些配置變量的默認(rèn)值(嵌入在 CGI 腳本中)在構(gòu)建 gitweb 期間設(shè)置 - 如果是這種情況,則將這個(gè)事實(shí)放在它們的描述中。有關(guān)INSTALL
構(gòu)建和安裝 gitweb 的指導(dǎo),請(qǐng)參閱 gitweb 的文件。
下面描述的配置變量控制著 gitweb 如何找到 Git 存儲(chǔ)庫,以及如何顯示和訪問存儲(chǔ)庫。
另請(qǐng)參閱 gitweb [1] 手冊(cè)頁中的“存儲(chǔ)庫”和后面的小節(jié)。
$projectroot
絕對(duì)文件系統(tǒng)路徑,將被預(yù)置為項(xiàng)目路徑; 存儲(chǔ)庫的路徑是$projectroot/$project
。設(shè)置為$GITWEB_PROJECTROOT
在安裝過程中。這個(gè)變量必須正確設(shè)置為gitweb找到存儲(chǔ)庫。
例如,如果$projectroot
通過在 gitweb 配置文件中添加以下內(nèi)容來將其設(shè)置為 “/ srv / git” :
our $projectroot = "/srv/git";
然后
http://git.example.com/gitweb.cgi?p=foo/bar.git
和它的基于 path_info 的等價(jià)物
http://git.example.com/gitweb.cgi/foo/bar.git
將映射到/srv/git/foo/bar.git
文件系統(tǒng)上的路徑。
$projects_list
列出項(xiàng)目的純文本文件的名稱或要為項(xiàng)目掃描的目錄名稱。
項(xiàng)目列表文件應(yīng)每行列出一個(gè)項(xiàng)目,每行具有以下格式
<URI-encoded filesystem path to repository> SP <URI-encoded repository owner>
此變量的默認(rèn)值由GITWEB_LIST
安裝時(shí)的 makefile 變量確定。如果這個(gè)變量是空的,gitweb 將回退到掃描$projectroot
目錄的存儲(chǔ)庫。
$project_maxdepth
如果$projects_list
變量未設(shè)置,gitweb 將遞歸掃描 Git 存儲(chǔ)庫的文件系統(tǒng)。所述$project_maxdepth
用于限制橫動(dòng)深度,相對(duì)于$projectroot
(起點(diǎn)); 這意味著目錄其進(jìn)一步從$projectroot
比$project_maxdepth
將被跳過。
它純粹是性能優(yōu)化,最初用于 MacOS X ,遞歸目錄遍歷速度慢。Gitweb 遵循符號(hào)鏈接,但它檢測(cè)周期,忽略任何重復(fù)的文件和目錄。
此變量的默認(rèn)值由構(gòu)建時(shí)配置變量確定,該變量GITWEB_PROJECT_MAXDEPTH
默認(rèn)為2007。
$export_ok
僅當(dāng)該文件存在時(shí)才顯示存儲(chǔ)庫(在存儲(chǔ)庫中)。只有當(dāng)這個(gè)變量的計(jì)算結(jié)果為真時(shí)才有效。通過設(shè)置構(gòu)建 gitweb 時(shí)可以設(shè)置GITWEB_EXPORT_OK
。這條路是相對(duì)的GIT_DIR
。git-daemon1 使用git-daemon-export-ok
,除非開始--export-all
。默認(rèn)情況下,這個(gè)變量沒有設(shè)置,這意味著這個(gè)功能被關(guān)閉。
$export_auth_hook
用于確定應(yīng)顯示哪些存儲(chǔ)庫的函數(shù)。這個(gè)子程序應(yīng)該帶一個(gè)參數(shù),一個(gè)項(xiàng)目的完整路徑,如果它返回 true ,那么該項(xiàng)目將被包含在項(xiàng)目列表中,只要滿足 $ export_ok 描述的其他需求,就可以通過 gitweb 訪問 $ projects_list 和 $ projects_maxdepth 。例:
our $export_auth_hook = sub { return -e "$_[0]/git-daemon-export-ok"; };
盡管上述可以通過使用$export_ok
替代來完成
our $export_ok = "git-daemon-export-ok";
如果未設(shè)置(默認(rèn)),則表示此功能已禁用。
另請(qǐng)參閱 gitweb [1] 聯(lián)機(jī)幫助頁中的“控制對(duì) Git 存儲(chǔ)庫的訪問”小節(jié)中更多涉及的示例。
$strict_export
只允許查看概覽頁面上顯示的存儲(chǔ)庫。例如,這使得$gitweb_export_ok
文件可以決定版本庫是否可用,而不僅僅是如何顯示。如果$gitweb_list
指向包含項(xiàng)目列表的文件,則只有列出的那些存儲(chǔ)庫可用于 gitweb ??梢栽谕ㄟ^構(gòu)建 gitweb 時(shí)設(shè)置GITWEB_STRICT_EXPORT
。默認(rèn)情況下,這個(gè)變量沒有設(shè)置,這意味著你可以直接訪問隱藏在項(xiàng)目列表頁面中的那些存儲(chǔ)庫(例如,沒有在 $ projects_list 文件中列出)。
以下配置變量告訴 gitweb 在哪里可以找到文件。這些變量的值是文件系統(tǒng)上的路徑。
$GIT
使用核心 git 可執(zhí)行文件。默認(rèn)設(shè)置為$GIT_BINDIR/git
,默認(rèn)設(shè)置為$(bindir)/git
。如果您使用從二進(jìn)制包安裝的 Git ,通常應(yīng)將其設(shè)置為 “/ usr / bin / git” 。如果你的 web 服務(wù)器有一個(gè)合理的 PATH ,這可能只是 “git” ; 從安全角度來看,最好使用絕對(duì)路徑來使用 git 二進(jìn)制。如果您安裝了多個(gè) Git 版本,則可以使用它來選擇要使用的版本。必須(正確)設(shè)置 gitweb 才能工作。
$mimetypes_file
在嘗試之前用于(基于文件擴(kuò)展名)MIME 類型猜測(cè)的文件/etc/mime.types
。注意這條路徑,如果是相對(duì)的,取決于當(dāng)前的 Git 倉庫,而不是 CGI 腳本。如果未設(shè)置,則僅/etc/mime.types
使用(如果存在于文件系統(tǒng)中)。如果未找到 mimetypes 文件,則禁用基于文件擴(kuò)展名的 mimetype 猜測(cè)。取消默認(rèn)設(shè)置。
$highlight_bin
由于對(duì)參數(shù)和輸出的假設(shè),它必須是來自http://www.andre-simon.de的路徑。默認(rèn)設(shè)置為highlight
; 將其設(shè)置為完整路徑以突出顯示可執(zhí)行文件,如果它未安裝在您的 Web 服務(wù)器的PATH 上 。請(qǐng)注意,該highlight
功能必須設(shè)置為 gitweb 實(shí)際使用語法高亮。
注:對(duì)于要突出顯示的文件,必須檢測(cè)其語法類型,并且必須通過“突出顯示”支持該語法。默認(rèn)的語法檢測(cè)是最小的,并且有許多支持的語法類型,默認(rèn)情況下不檢測(cè)。有三種添加語法檢測(cè)的選項(xiàng)。第一個(gè)和第二個(gè)優(yōu)先級(jí)是%highlight_basename
and %highlight_ext
,它根據(jù)基本名稱(完整的文件名,例如“Makefile”)和擴(kuò)展名(例如“sh”)進(jìn)行檢測(cè)。這些散列的鍵分別是基本名稱和擴(kuò)展名,給定鍵的值是要傳遞--syntax <syntax>
給“高亮” 的語法的名稱。最后的優(yōu)先級(jí)是“高亮”配置Shebang
正則表達(dá)式根據(jù)文件中的第一行檢測(cè)語言(例如,匹配行“#!/ bin / bash”)。有關(guān)更多詳細(xì)信息,請(qǐng)參閱高亮文檔和在 /etc/highlight/filetypes.conf 中的默認(rèn)配置。
例如,如果您要托管的存儲(chǔ)庫使用 PHP 文件的 “phtml” 擴(kuò)展名,并且希望為這些文件提供正確的語法高亮顯示,則可以將以下內(nèi)容添加到 gitweb 配置中:
our %highlight_ext;$highlight_ext{'phtml'} = 'php';
下面描述的配置變量配置了一些 gitweb 鏈接:它們的目標(biāo)和它們的外觀(文本或圖像),以及在哪里可以找到頁面先決條件(stylesheet,favicon,images,scripts)。通常它們保持其默認(rèn)值,可能的例外是@stylesheets
變量。
@stylesheets
樣式表的 URI 列表(相對(duì)于頁面的基本 URI )。您可以指定多個(gè)樣式表,例如,在單獨(dú)的樣式表中使用 “gitweb.css” 作為基礎(chǔ),并使用特定于站點(diǎn)的修改,以便升級(jí) gitweb 。例如,您可以site
通過放置來添加樣式表
push @stylesheets, "gitweb-site.css";
在 gitweb 配置文件中。那些相對(duì)路徑的值是相對(duì)于 gitweb 的基本 URI 。
該列表應(yīng)該包含 gitweb 標(biāo)準(zhǔn)樣式表的 URI 。gitweb 樣式表的缺省 URI 可以在GITWEB_CSS
生成時(shí)使用 makefile 變量進(jìn)行設(shè)置。其默認(rèn)值是static/gitweb.css
(或者static/gitweb.min.css
如果CSSMIN
變量已定義,即如果在構(gòu)建過程中使用了 CSS 縮小器)。
注意:還有一個(gè)傳統(tǒng)的$stylesheet
配置變量,舊的 gitweb 使用它。如果$stylesheet
定義了變量,那么只有 gitweb 使用此變量給出的 CSS 樣式表。
$logo
指向您放置git-logo.png
在您的 Web 服務(wù)器上,或者指向標(biāo)識(shí)的通用 URI ,72x27大小)。該圖像顯示在每個(gè) gitweb 頁面的右上角,并用作 Atom 訂閱源的徽標(biāo)。相對(duì)于 gitweb 的基本 URI(作為路徑)。使用GITWEB_LOGO
變量構(gòu)建 gitweb 時(shí)可以調(diào)整默認(rèn)設(shè)置為static/git-logo.png
。
$favicon
指向您放置git-favicon.png
在 Web 服務(wù)器上的位置,或者指向 favicon 的通用 URI ,它將作為 “image / png” 類型提供。支持網(wǎng)站圖標(biāo)(網(wǎng)站圖標(biāo))的網(wǎng)頁瀏覽器可能會(huì)在瀏覽器的網(wǎng)址列中顯示它們,并且會(huì)在書簽中的站點(diǎn)名稱旁顯示它們。相對(duì)于 gitweb 的基本 URI ??梢栽跇?gòu)建時(shí)使用GITWEB_FAVICON
變量進(jìn)行調(diào)整。默認(rèn)設(shè)置為static/git-favicon.png
。
$javascript
指向您放置gitweb.js
在您的 Web 服務(wù)器上的位置,或指向 gitweb 使用的 JavaScript 代碼的 URI 的更一般化。相對(duì)于 gitweb 的基本 URI ??梢栽跇?gòu)建時(shí)使用GITWEB_JS
構(gòu)建時(shí)配置變量進(jìn)行設(shè)置。
默認(rèn)值是static/gitweb.js
或者static/gitweb.min.js
如果JSMIN
構(gòu)建變量已定義,即如果在構(gòu)建時(shí)使用了 JavaScript 縮放器。請(qǐng)注意,這個(gè)單個(gè)文件是由多個(gè)單獨(dú)的 JavaScript “模塊”生成的。
$home_link
所有頁面頂部的首頁鏈接目標(biāo)(視圖“面包屑”的第一部分)。默認(rèn)情況下,它被設(shè)置為當(dāng)前頁面的絕對(duì) URI($my_uri
如果$my_uri
是未定義的或者是空字符串,則設(shè)置為變量的值或“/” )。
$home_link_str
$home_link
(通常是包含項(xiàng)目列表的主要 gitweb 頁面)的所有頁面頂部的“主頁鏈接”標(biāo)簽。它被用作 gitweb 的 “breadcrumb trail” 的第一個(gè)組件:<home link> / <project> / <action>
。可以在構(gòu)建時(shí)使用GITWEB_HOME_LINK_STR
變量進(jìn)行設(shè)置。默認(rèn)情況下,它被設(shè)置為 “projects” ,因?yàn)榇随溄訒?huì)導(dǎo)致項(xiàng)目列表。另一個(gè)流行的選擇是將其設(shè)置為網(wǎng)站的名稱。請(qǐng)注意,它被視為原始 HTML ,因此不應(yīng)從不受信任的來源設(shè)置。
@extra_breadcrumbs
在 home 鏈接之前添加到面包屑路徑起始處的附加鏈接到邏輯上位于 gitweb 項(xiàng)目列表之上的頁面(例如托管 gitweb 服務(wù)器的組織和部門)。列表中的每個(gè)元素都是對(duì)數(shù)組的引用,其中元素0是鏈接文本(等同于$home_link_str
),元素1是目標(biāo) URL(等同于$home_link
)。
例如,以下設(shè)置會(huì)生成一個(gè)瀏覽路徑記錄,如 “home / dev / projects / ...” ,其中 “projects” 是主鏈接。
our @extra_breadcrumbs = ( [ 'home' => 'https://www.example.org/' ], [ 'dev' => 'https://dev.example.org/' ], );
$logo_url $logo_label
Git 徽標(biāo)鏈接(或您的網(wǎng)站徽標(biāo),如果您選擇使用不同的徽標(biāo)圖像)的 URI 和標(biāo)簽(標(biāo)題)。默認(rèn)情況下,這兩個(gè)參考 Git 主頁,https://git-scm.com ; 過去,他們?cè)?a target="_blank">https://www.kernel.org上提到了 Git 文檔。
您可以使用下面描述的變量來調(diào)整由 gitweb 生成的頁面的外觀。您可以更改站點(diǎn)名稱,為所有頁面添加常用頁眉和頁腳,并在其主頁面上(這是項(xiàng)目列表頁面)添加此 gitweb 安裝的描述等。
$site_name
您的網(wǎng)站或組織的名稱,以顯示在網(wǎng)頁標(biāo)題中。將其設(shè)置為描述清晰書簽等的內(nèi)容。如果未設(shè)置此變量或者是,則 gitweb 將使用SERVER_NAME
CGI
環(huán)境變量的值,將站點(diǎn)名稱設(shè)置為 “$ SERVER_NAME Git” 或 “未命名Git”(如果未設(shè)置此變量) (例如,如果將 gitweb 作為獨(dú)立腳本運(yùn)行)。
可以在構(gòu)建時(shí)使用GITWEB_SITENAME
,取消默認(rèn)設(shè)置。
$site_html_head_string
將 HTML 片段包含在每個(gè)頁面的 <head> 部分中??梢?code>GITWEB_SITE_HTML_HEAD_STRING在構(gòu)建時(shí)使用。沒有默認(rèn)值。
$site_header
包含 HTML 的文件的名稱將包含在每個(gè)頁面的頂部。相對(duì)于包含gitweb.cgi
腳本的目錄??梢?code>GITWEB_SITE_HEADER在構(gòu)建時(shí)使用。沒有默認(rèn)值。
$site_footer
包含 HTML 的文件的名稱將包含在每個(gè)頁面的底部。相對(duì)于包含gitweb.cgi
腳本的目錄??梢?code>GITWEB_SITE_FOOTER在構(gòu)建時(shí)使用。沒有默認(rèn)值。
$home_text
如果存在,將包含在 gitweb 項(xiàng)目概覽頁面( “projects_list” 視圖)中的 HTML 文件的名稱。相對(duì)于包含 gitweb.cgi 腳本的目錄。默認(rèn)值可以在編譯時(shí)使用GITWEB_HOMETEXT
變量進(jìn)行調(diào)整。默認(rèn)設(shè)置為indextext.html
。
$projects_list_description_width
項(xiàng)目列表中 “Description” 列的寬度(以字符為單位)。更長的描述將被截?cái)啵ㄔ噲D在字邊界處切割); 該title
屬性中提供了完整的描述(通常在鼠標(biāo)懸停中顯示)。默認(rèn)值為25,如果使用長項(xiàng)目描述,則可能太小。
$default_projects_order
項(xiàng)目列表頁面上項(xiàng)目排序的默認(rèn)值,這意味著如果您沒有顯式地對(duì)項(xiàng)目列表進(jìn)行排序(如果 URL 中沒有“o” CGI 查詢參數(shù)),則使用排序。有效值為“none”(未分類),“Project”(項(xiàng)目名稱,即相對(duì)于存儲(chǔ)庫的路徑$projectroot
),“descr”(項(xiàng)目描述),“owner”和“age”(按最新日期承諾)。
默認(rèn)值是“project”。未知值意味著未排序。
這些配置變量控制著internal
gitweb 的行為。
$default_blob_plain_mimetype
默認(rèn)的 mimetype 為 blob_plain(原始)視圖,如果 mimetype 檢查不會(huì)導(dǎo)致其他類型; 默認(rèn)情況下是“text / plain”。Gitweb 根據(jù)文件名的擴(kuò)展名,使用$mimetypes_file
(如果設(shè)置和文件存在)和/etc/mime.types
文件(參見 mime.types(5)聯(lián)機(jī)幫助頁; gitweb 僅支持文件擴(kuò)展名規(guī)則)來猜測(cè)文件的 mimetype 。
$default_text_plain_charset
文本文件的默認(rèn)字符集。如果未設(shè)置,則將使用 Web 服務(wù)器配置。取消默認(rèn)設(shè)置。
$fallback_encoding
當(dāng)一行包含非 UTF-8 字符時(shí),Gitweb 會(huì)假定這個(gè)字符集。回退解碼使用時(shí)沒有錯(cuò)誤檢查,所以它甚至可以是 “utf-8” 。該值必須是有效的編碼; 請(qǐng)參閱 Encoding :: Supported(3pm)手冊(cè)頁獲取列表。默認(rèn)值是“l(fā)atin1”,又名,“ISO-8859-1”。
@diff_opts
重命名 git-diff 和 git-diff-tree 的檢測(cè)選項(xiàng)。默認(rèn)值是('-M'); 將其設(shè)置為('-C')或('-C','-C')以檢測(cè)副本,或者將其設(shè)置為(),即空列表,如果您不想重命名檢測(cè)。
請(qǐng)注意,重命名和尤其是復(fù)制檢測(cè)可能會(huì)占用相當(dāng)大的 CPU 資源。還要注意,非 Git 工具在使用上述選項(xiàng)生成的補(bǔ)丁時(shí)可能會(huì)遇到問題,尤其是涉及文件副本('-C')或十字交叉重命名('-B')的補(bǔ)丁時(shí)。
大多數(shù)功能都是通過%feature
散列來配置的; 然而一些額外的 gitweb 功能可以打開并使用下面描述的變量進(jìn)行配置。除了控制 gitweb 外觀的配置變量外,這個(gè)列表還包含配置 gitweb 的管理端的變量(例如,跨站腳本預(yù)防;毫無疑問,這是副作用會(huì)影響“匯總”頁面的外觀或負(fù)載限制)。
@git_base_url_list
Git 基準(zhǔn) URL 列表。這些 URL 用于生成描述從何處獲取項(xiàng)目的 URL ,這些 URL 顯示在項(xiàng)目摘要頁面上。完整提取網(wǎng)址為“ $git_base_url/$project
”,用于此列表的每個(gè)元素。您可以設(shè)置多個(gè)基本 URL(例如一個(gè)用于git://
協(xié)議,另一個(gè)用于http://
協(xié)議)。
請(qǐng)注意,每個(gè)存儲(chǔ)庫配置可以在$GIT_DIR/cloneurl
文件中設(shè)置,也可以gitweb.url
在項(xiàng)目配置中設(shè)置為多值配置變量的值。每個(gè)存儲(chǔ)庫配置優(yōu)先于由@git_base_url_list
元素和項(xiàng)目名稱組成的值。
通過設(shè)置GITWEB_BASE_URL
構(gòu)建時(shí)配置變量,您可以在構(gòu)建時(shí)設(shè)置一個(gè)單一值(此列表中的單個(gè)條目/項(xiàng)目)。默認(rèn)情況下它被設(shè)置為(),即一個(gè)空列表。這意味著 gitweb 不會(huì)嘗試從項(xiàng)目名稱創(chuàng)建項(xiàng)目 URL(以獲?。?。
$projects_list_group_categories
是否在項(xiàng)目列表頁面上按類別啟用項(xiàng)目分組。項(xiàng)目的類別由每個(gè)存儲(chǔ)庫配置中的$GIT_DIR/category
文件或gitweb.category
變量確定。默認(rèn)情況下禁用(設(shè)置為0)。
$project_list_default_category
未指定任何項(xiàng)目的默認(rèn)類別。如果將其設(shè)置為空字符串,則這些項(xiàng)目將保持未分類并列在分類項(xiàng)目上方的頂部。僅在啟用項(xiàng)目類別時(shí)使用,這意味著如果$projects_list_group_categories
為真。默認(rèn)情況下設(shè)置為“”(空字符串)。
$prevent_xss
如果為 true ,則會(huì)禁用某些 gitweb 功能,以防止存儲(chǔ)庫中的內(nèi)容啟動(dòng)跨站點(diǎn)腳本攻擊( XSS )攻擊。如果您不信任存儲(chǔ)庫的內(nèi)容,請(qǐng)將其設(shè)置為 true 。默認(rèn)為 False(設(shè)為0)。
$maxload
用于設(shè)置我們?nèi)詴?huì)響應(yīng) gitweb 查詢的最大負(fù)載。如果服務(wù)器負(fù)載超過這個(gè)值,那么 gitweb 將返回“503服務(wù)不可用”錯(cuò)誤。如果 gitweb 無法確定其值,則服務(wù)器負(fù)載將被視為0。目前它只能在 Linux 上使用/proc/loadavg
; 負(fù)載中存在系統(tǒng)上活動(dòng)任務(wù)的數(shù)量 - 實(shí)際運(yùn)行的進(jìn)程 - 在最后一分鐘的平均值。
設(shè)置$maxload
為未定義的值(undef
)以關(guān)閉此功能。默認(rèn)值是300。
$omit_age_column
如果為 true ,則省略項(xiàng)目列表頁面上最近提交日期的列。它可以為每個(gè)存儲(chǔ)庫節(jié)省一點(diǎn) I / O 和一個(gè)分支。
$omit_owner
如果為 true,則顯示有關(guān)存儲(chǔ)庫所有者的信息
$per_request_config
如果這被設(shè)置為代碼引用,它將為每個(gè)請(qǐng)求運(yùn)行一次。您可以通過這種方式設(shè)置每個(gè)會(huì)話更改的配置部分。例如,可以在 gitweb 配置文件中使用以下代碼
our $per_request_config = sub { $ENV{GL_USER} = $cgi->remote_user || "gitweb";};
如果$per_request_config
不是代碼引用,則將其解釋為布爾值。如果它是真的,gitweb 會(huì)根據(jù)請(qǐng)求處理一次配置文件,如果它是假的,gitweb 將只處理一次配置文件,每次執(zhí)行它。默認(rèn)情況下為真(設(shè)置為1)。
注:$my_url
,$my_uri
以及$base_url
與它們的默認(rèn)值覆蓋每個(gè)請(qǐng)求之前,所以如果你想改變他們,一定要將此變量設(shè)置為 true 或代碼參考實(shí)現(xiàn)所期望的變化。
這個(gè)變量只在使用使用單個(gè) gitweb 實(shí)例服務(wù)多個(gè)請(qǐng)求的持久性 Web 環(huán)境時(shí)才起作用,如 mod_perl,F(xiàn)astCGI 或 Plackup 。
通常你不需要改變(調(diào)整)下面描述的任何配置變量; 它們應(yīng)該被 gitweb 自動(dòng)設(shè)置為正確的值。
$version
Gitweb 版本,在從 gitweb.perl 創(chuàng)建 gitweb.cgi 時(shí)自動(dòng)設(shè)置。例如,如果您正在運(yùn)行修改的 gitweb ,則可能需要對(duì)其進(jìn)行修改
our $version .= " with caching";
如果你運(yùn)行帶有緩存支持的修改版本的 gitweb 。這個(gè)變量純粹是信息性的,用在例如 HTML 標(biāo)題中的 “generator” meta 標(biāo)題中。
$my_url $my_uri
gitweb 腳本的完整 URL 和絕對(duì) URL ; 在早期版本的 gitweb 中,您可能需要設(shè)置這些變量,但現(xiàn)在應(yīng)該不需要這樣做??纯?code>$per_request_config你是否需要設(shè)置它們。
$base_url
在通過的 GitWeb 生成的頁面基本 URL 為相對(duì) URL(例如$logo
,$favicon
,@stylesheets
如果他們是相對(duì) URL ),并且需要使用<base href="$base_url">
僅適用于非空 PATH_INFO 的 URL 。通常 gitweb 會(huì)正確設(shè)置它的值,并且不需要設(shè)置這個(gè)變量,例如 $ my_uri 或 “/” 。$per_request_config
無論如何,看看你是否需要重寫它。
許多 gitweb 功能可以啟用(或禁用)并使用%feature
散列進(jìn)行配置。gitweb 功能的名稱是這個(gè)散列的關(guān)鍵。
每個(gè)%feature
哈希元素都是一個(gè)哈希引用,并具有以下結(jié)構(gòu):
"<feature_name>" => { "sub" => <feature-sub (subroutine)>, "override" => <allow-override (boolean)>, "default" => [ <options>... ]},
每個(gè)項(xiàng)目不能覆蓋一些功能。對(duì)于這些特征,適當(dāng)?shù)?code>%feature散列元素的結(jié)構(gòu)具有更簡單的形式:
"<feature_name>" => { "override" => 0, "default" => [ <options>... ]},
正如人們可以看到它缺乏 'sub' 元素。
功能配置的每個(gè)部分的含義如下所述:
默認(rèn)
列表(數(shù)組參考)功能參數(shù)(如果有),也用于切換(啟用或禁用)給定功能。
請(qǐng)注意,即使功能不接受任何配置參數(shù),它當(dāng)前始終是數(shù)組引用,而 'default' 僅用于打開或關(guān)閉它。在這種情況下,您可以通過設(shè)置此元素來打開功能[1]
,并將其設(shè)置為關(guān)閉[0]
。另請(qǐng)參閱關(guān)于“示例”部分中的“責(zé)備”功能的文章。
要禁用接受參數(shù)的功能(可配置),您需要將此元素設(shè)置為空列表,即[]
。
覆蓋
如果此字段具有真值,那么給定的功能是可覆蓋的,這意味著它可以基于每個(gè)存儲(chǔ)庫進(jìn)行配置(或啟用/禁用)。
通常,通過gitweb.<feature>
,每個(gè)存儲(chǔ)庫 Git 配置文件中的配置變量可以配置 “<feature>” 。
請(qǐng)注意,默認(rèn)情況下,任何功能都不可覆蓋。
sub
內(nèi)部細(xì)節(jié)的實(shí)施。重要的是,如果此字段不存在,則不支持給定功能的每個(gè)存儲(chǔ)庫覆蓋。
你不需要在 gitweb 配置文件中改變它。
%feature
的功能%feature
下面列出了可通過哈希配置的 gitweb 功能。這應(yīng)該是一個(gè)完整的列表,但最終的權(quán)威性和完整列表位于 gitweb.cgi 源代碼中,具有注釋中描述的功能。
blame
啟用 “blame” 和 “blame_incremental” blob 視圖,為每行顯示最后一次修改它的提交; 見 git-blame [1]。這可能非常耗費(fèi) CPU 資源,因此默認(rèn)情況下是禁用的。
可以通過存儲(chǔ)庫的gitweb.blame
配置變量(布爾值)在每個(gè)存儲(chǔ)庫上配置此功能。
snapshot
啟用并配置 “snapshot” 操作,該操作允許用戶下載由 git-archive [1] 生成并可能另外壓縮的任何樹或提交的壓縮歸檔文件。如果您有大型項(xiàng)目,這可能會(huì)產(chǎn)生高流量。
'default' 的值是%known_snapshot_formats
您希望提供的哈希定義的快照格式名稱列表。支持的格式包括 “tgz” ,“tbz2” ,“txz”( gzip / bzip2 / xz 壓縮的 tar 歸檔文件)和 “zip” ; 請(qǐng)咨詢 gitweb 來源獲取最終列表。默認(rèn)情況下只提供 “tgz” 。
可以通過存儲(chǔ)庫的gitweb.blame
配置變量(每個(gè)存儲(chǔ)庫基于每個(gè)存儲(chǔ)庫)配置此功能,該變量包含逗號(hào)分隔的格式列表或 “none” 以禁用快照。未知值將被忽略。
grep
啟用 grep 搜索,該搜索列出當(dāng)前選定樹(目錄)中包含給定字符串的文件; 請(qǐng)參閱 git-grep [1]。當(dāng)然,這可能是 CPU 密集型的。默認(rèn)啟用。
可以通過存儲(chǔ)庫的gitweb.grep
配置變量(布爾值)在每個(gè)存儲(chǔ)庫上配置此功能。
pickaxe
啟用所謂的鎬搜索,它將列出引入或刪除文件中給定字符串的提交。這可以是實(shí)用的,并且可以比 “blame” 操作更快,但仍然可能是 CPU 密集型的。默認(rèn)啟用。
在 git-log [1] 中描述了-S<string>
鎬頭搜索(選項(xiàng)的描述,在 gitdiffcore [7] 中引用鎬頭輸入以獲得更多細(xì)節(jié))。
通過設(shè)置存儲(chǔ)庫的gitweb.pickaxe
配置變量(布爾值),可以在每個(gè)存儲(chǔ)庫的基礎(chǔ)上配置此功能。
show-sizes
在“樹”視圖中,在單獨(dú)的列中啟用顯示 blob(普通文件)的大小,類似于什么ls -l
; 請(qǐng)參閱-l
git-ls-tree [1] 手冊(cè)頁中的選項(xiàng)說明。這花費(fèi)了一點(diǎn) I / O 。默認(rèn)啟用。
可以通過存儲(chǔ)庫的gitweb.showSizes
配置變量(布爾值)在每個(gè)存儲(chǔ)庫上配置此功能。
patches
啟用并配置“修補(bǔ)程序”視圖,該視圖顯示電子郵件(純文本)輸出格式的提交列表; 另請(qǐng)參閱 git-format-patch [1] 。該值是“修補(bǔ)程序”視圖中生成的修補(bǔ)程序集中修補(bǔ)程序的最大數(shù)量。將該default
字段設(shè)置為包含單個(gè)項(xiàng)目的列表或包含空列表以禁用修補(bǔ)程序視圖,或包含單個(gè)負(fù)數(shù)的列表以刪除任何限制。默認(rèn)值是16。
可以通過存儲(chǔ)庫的gitweb.patches
配置變量(整數(shù))在每個(gè)存儲(chǔ)庫上配置此功能。
avatar
Avatar 支持。啟用此功能后,諸如 “shortlog” 或 “commit” 之類的視圖將顯示與每個(gè)提交者和作者的電子郵件相關(guān)聯(lián)的化身。
目前可用的提供商是“gravatar”和“picon”。一次只能選擇一個(gè)提供者(default
是一個(gè)元素列表)。如果指定了未知的提供者,則該功能被禁用。請(qǐng)注意,某些提供程序可能需要安裝額外的 Perl 程序包; 看到gitweb/INSTALL
更多的細(xì)節(jié)。
可以通過存儲(chǔ)庫的gitweb.avatar
配置變量以每個(gè)存儲(chǔ)庫為基礎(chǔ)配置此功能。
另請(qǐng)參閱%avatar_size
圖標(biāo)和頭像的像素大?。ā澳J(rèn)”用于像“l(fā)og”和“shortlog”這樣的單線,“double”用于像“commit”,“commitdiff”或“tag”這樣的雙線) 。如果默認(rèn)字體大小或線條高度發(fā)生變化(例如,通過添加額外的 CSS 樣式表@stylesheets
),可能需要更改這些值。
highlight
“blob”視圖中的服務(wù)器端語法高亮支持。它要求$highlight_bin
程序可用(請(qǐng)參閱上面“配置變量”一節(jié)中對(duì)此變量的描述),因此默認(rèn)情況下是禁用的。
可以通過存儲(chǔ)庫的gitweb.highlight
配置變量(布爾值)在每個(gè)存儲(chǔ)庫上配置此功能。
remote_heads
在 “heads” 列表中啟用顯示遠(yuǎn)程頭(遠(yuǎn)程跟蹤分支)。在大多數(shù)情況下,遠(yuǎn)程跟蹤分支列表是不必要的內(nèi)部私人細(xì)節(jié),因此默認(rèn)情況下禁用此功能。通常用于瀏覽本地存儲(chǔ)庫的 git-instaweb [1] 啟用并使用此功能。
可以通過存儲(chǔ)庫的gitweb.remote_heads
配置變量(布爾值)在每個(gè)存儲(chǔ)庫上配置此功能。
其余功能不能在每個(gè)項(xiàng)目的基礎(chǔ)上重寫。
search
啟用文本搜索,該搜索將列出與作者,提交者或提交文本匹配給定字符串的提交; 看到的說明--author
,--committer
并且--grep
在 GIT 中日志[1]手冊(cè)頁的選項(xiàng)。默認(rèn)啟用。
不支持項(xiàng)目特定的覆蓋。
forks
如果啟用此功能,gitweb 會(huì)將項(xiàng)目根目錄( basename )的子目錄中的項(xiàng)目視為現(xiàn)有項(xiàng)目的分支。對(duì)于每個(gè)項(xiàng)目$projname.git
,$projname/
目錄及其子目錄中的項(xiàng)目將不會(huì)顯示在主項(xiàng)目列表中。相反,“+”標(biāo)記顯示在+ $ projname +旁邊,該標(biāo)記鏈接到列出所有分支($projname/
子目錄中的所有項(xiàng)目)的“分支”視圖。此外,項(xiàng)目摘要頁面鏈接了項(xiàng)目的“分支”視圖。
如果項(xiàng)目列表是從文件中獲取的($projects_list
指向文件),則只有在該文件中的主項(xiàng)目之后列出了叉才會(huì)被識(shí)別。
不支持項(xiàng)目特定的覆蓋。
actions
將自定義鏈接插入到所有項(xiàng)目頁面的操作欄中。這使您可以鏈接到集成到 gitweb 中的第三方腳本。
“default”值由一個(gè)三元組列表組成("<label>", "<link>", "<position>")
,其中“position”是插入鏈接的標(biāo)簽,“l(fā)ink”是%n
擴(kuò)展為項(xiàng)目名稱的格式字符串,%f
文件系統(tǒng)中的項(xiàng)目路徑即“$ projectroot / $ project”),%h
到當(dāng)前散列('h'gitweb參數(shù))和%b
當(dāng)前散列基數(shù)('hb'gitweb參數(shù)); %%
擴(kuò)展為'%'。
例如,在編寫此頁面時(shí),http: //repo.or.cz Git 托管站點(diǎn)將其設(shè)置為以下內(nèi)容以啟用圖形日志(使用第三方工具 git-browser ):
$feature{'actions'}{'default'} = [ ('graphiclog', '/git-browser/by-commit.html?r=%n', 'summary')];
這會(huì)在 “graphiclog” 鏈接之后添加一個(gè)標(biāo)題為 “graphiclog” 的鏈接,導(dǎo)致git-browser
腳本r=<project>
作為查詢參數(shù)傳遞。
不支持項(xiàng)目特定的覆蓋。
timed
啟用顯示頁面頁腳(頁面底部)中每頁生成和顯示所花費(fèi)的時(shí)間和多少次 Git 命令。例如,頁腳可能包含:“此頁面需要6.53325秒和13個(gè) Git 命令才能生成?!?默認(rèn)情況下禁用。
不支持項(xiàng)目特定的覆蓋。
javascript-timezone
啟用并配置通過 JavaScript 在 gitweb 輸出中更改日期的常用時(shí)區(qū)的功能。gitweb 輸出中的日期包括 “commit” ,“commitdiff” 和 “l(fā)og” 視圖中的 authordate 和 committerdate ,以及 “tag” 視圖中的 taggerdate 。默認(rèn)啟用。
該值是三個(gè)值的列表:默認(rèn)時(shí)區(qū)(用于客戶端未選擇其他時(shí)區(qū)并將其保存在 cookie 中),用于存儲(chǔ)所選時(shí)區(qū)的 cookie 的名稱以及使用的 CSS 類標(biāo)記操作的日期。如果您想關(guān)閉此功能,請(qǐng)將 “default” 設(shè)置為空列表:[]
。
典型的 gitweb 配置文件只會(huì)改變開始(默認(rèn))時(shí)區(qū),并將其他元素保留為默認(rèn)值:
$feature{'javascript-timezone'}{'default'}[0] = "utc";
這里介紹的示例配置保證了向前和向后兼容。
時(shí)區(qū)值可以是“本地”(對(duì)于瀏覽器使用的本地時(shí)區(qū)),“utc”(當(dāng) JavaScript 或此功能被禁用時(shí) gitweb 使用的)或數(shù)字時(shí)區(qū),例如 “+/- HHMM” 作為 “+0200” 。
不支持項(xiàng)目特定的覆蓋。
extra-branch-refs
“refs” 下將被用作分支參考的附加目錄列表。例如,如果您有一個(gè) gerrit 安裝程序,其中 refs / heads / 下的所有分支都是官方的,在 refs / sandbox / 下的 push-after-review 和分支,refs / wip 和 refs / other 是權(quán)限更寬的用戶,你可能想要如下設(shè)置這個(gè)變量:
$feature{'extra-branch-refs'}{'default'} = ['sandbox', 'wip', 'other'];
可以通過存儲(chǔ)庫的配置變量(其中包含空格分隔的引用列表)將$ feature { extra-branch-refs
} { override
}設(shè)置為 true后,在每個(gè)存儲(chǔ)庫中配置此功能gitweb.extraBranchRefs
。一個(gè)例子:
[gitweb] extraBranchRefs = sandbox wip other
gitweb.extraBranchRefs 實(shí)際上是一個(gè)多值配置變量,所以下面的例子也是正確的,結(jié)果與上面的片段相同:
[gitweb] extraBranchRefs = sandbox extraBranchRefs = wip other
指定不通過 “git check-ref-format” 審查的 ref 是錯(cuò)誤的。重復(fù)的值被過濾。
要啟用 blame ,鎬搜索和快照支持(允許 “tar.gz” 和 “zip” 快照),同時(shí)允許單個(gè)項(xiàng)目關(guān)閉它們,請(qǐng)將以下內(nèi)容放入 GITWEB_CONFIG 文件中:
$feature{'blame'}{'default'} = [1];$feature{'blame'}{'override'} = 1;
$feature{'pickaxe'}{'default'} = [1];$feature{'pickaxe'}{'override'} = 1;
$feature{'snapshot'}{'default'} = ['zip', 'tgz'];$feature{'snapshot'}{'override'} = 1;
如果允許覆蓋快照功能,則可以指定全局禁用哪些快照格式。您還可以添加所需的任何命令行選項(xiàng)(例如設(shè)置壓縮級(jí)別)。例如,您可以禁用 Zip 壓縮快照并將 gzip(1)設(shè)置為在級(jí)別6上運(yùn)行,方法是將以下行添加到 gitweb 配置文件中:
$known_snapshot_formats{'zip'}{'disabled'} = 1;$known_snapshot_formats{'tgz'}{'compressor'} = ['gzip','-6'];
如果備用配置文件(/etc/gitweb.conf
)和環(huán)境變量覆蓋其位置(GITWEB_CONFIG_SYSTEM
)的名稱反映其“fallback”角色,則調(diào)試會(huì)更容易。保留當(dāng)前名稱以避免破壞工作設(shè)置。
使用以下環(huán)境變量可以覆蓋每個(gè)實(shí)例和系統(tǒng)范圍的配置文件的位置:
GITWEB_CONFIG
設(shè)置每個(gè)實(shí)例配置文件的位置。
GITWEB_CONFIG_SYSTEM
設(shè)置備用系統(tǒng)范圍配置文件的位置。只有在每個(gè)實(shí)例不存在的情況下,該文件才被讀取。
GITWEB_CONFIG_COMMON
設(shè)置常用系統(tǒng)配置文件的位置。
gitweb_config.perl
這是每個(gè)實(shí)例配置文件的默認(rèn)名稱。上面描述了這個(gè)文件的格式。
/etc/gitweb.conf
這是備用系統(tǒng)范圍配置文件的默認(rèn)名稱。只有在未找到每個(gè)實(shí)例的配置變量時(shí)才使用此文件。
/etc/gitweb-common.conf
這是通用系統(tǒng)配置文件的默認(rèn)名稱。