亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
文字

命名

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_SYSTEMGITWEB_CONFIG。

您也可以在運(yùn)行時(shí)通過設(shè)置以下的環(huán)境變量覆蓋的 GitWeb 的配置文件地點(diǎn):GITWEB_CONFIG_COMMON,GITWEB_CONFIG_SYSTEMGITWEB_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 的文件。

存儲(chǔ)庫的位置

下面描述的配置變量控制著 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_basenameand %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';

鏈接及其目標(biāo)

下面描述的配置變量配置了一些 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 文檔。

改變 gitweb 的外觀

您可以使用下面描述的變量來調(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”。未知值意味著未排序。

改變 gitweb 的行為

這些配置變量控制著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 功能

許多 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'];

Bugs

如果備用配置文件(/etc/gitweb.conf)和環(huán)境變量覆蓋其位置(GITWEB_CONFIG_SYSTEM)的名稱反映其“fallback”角色,則調(diào)試會(huì)更容易。保留當(dāng)前名稱以避免破壞工作設(shè)置。

環(huán)境

使用以下環(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)配置文件的位置。

Files

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)名稱。

上一篇: 下一篇: