GITWEB.CONF(5) Git Manual GITWEB.CONF(5)

gitweb.conf - پرونده پیکربندی گیت‌وب (رابط وب گیت)

/etc/gitweb.conf, /etc/gitweb-common.conf, $GITWEBDIR/gitweb_config.perl

اسکریپت CGI گیت‌وب برای مشاهده مخازن گیت از طریق وب، از یک قطعه اسکریپت پرل به عنوان پرونده پیکربندی خود استفاده می‌کند. می‌توانید متغیرها را با استفاده از "our $variable = value" مقداردهی کنید؛ متن بعد از نویسه "#" تا انتهای خط نادیده گرفته می‌شود. برای جزئیات به perlsyn(1) مراجعه کنید.

یک نمونه:

# پرونده پیکربندی گیت‌وب برای http://git.example.org
#
our $projectroot = "/srv/git"; # پیشنهاد FHS
our $site_name = 'Example.org >> Repos';

پرونده پیکربندی برای بازنویسی تنظیمات پیش‌فرضی به کار می‌رود که هنگام تولید اسکریپت gitweb.cgi در گیت‌وب تعبیه شده‌اند.

اگرچه می‌توان تنظیمات پیکربندی را مستقیماً درون خود اسکریپت CGI گیت‌وب تغییر داد، اما آن تغییرات با ارتقای نسخه از دست خواهند رفت. تنظیمات پیکربندی ممکن است در فایلی در همان دایرکتوری اسکریپت CGI با نام پیش‌فرض gitweb_config.perl نیز قرار داده شوند — که امکان داشتن چندین نمونه گیت‌وب با پیکربندی‌های متفاوت را با استفاده از پیوندهای نمادین (symlinks) فراهم می‌سازد.

توجه داشته باشید که برخی پیکربندی‌ها می‌توانند به جای کل گیت‌وب، به ازای هر مخزن کنترل شوند: زیربخش "Per-repository gitweb configuration" را در صفحه راهنمای gitweb(1) ببینید.

گیت‌وب داده‌های پیکربندی را از منابع زیر و به ترتیب زیر می‌خواند:

•مقادیر درونی (که برخی هنگام مرحله ساخت تنظیم می‌شوند)،
•پرونده پیکربندی مشترک سراسری سیستم (به صورت پیش‌فرض /etc/gitweb-common.conf)،
•یا پرونده پیکربندی به ازای هر نمونه (به طور پیش‌فرض gitweb_config.perl در همان دایرکتوری گیت‌وب نصب‌شده)، یا اگر وجود نداشته باشد، پرونده پیکربندی جایگزین سراسری سیستم (به طور پیش‌فرض /etc/gitweb.conf).

مقادیر به‌دست‌آمده در پرونده‌های پیکربندی بعدی، مقادیر به‌دست‌آمده قبلی در توالی بالا را بازنویسی (override) می‌کنند.

مسیرهای پرونده پیکربندی مشترک سراسری سیستم، پرونده پیکربندی جایگزین سراسری سیستم و پرونده پیکربندی به ازای هر نمونه در زمان کامپایل با استفاده از متغیرهای پیکربندی Makefile زمان ساخت، به ترتیب GITWEB_CONFIG_COMMON، GITWEB_CONFIG_SYSTEM و GITWEB_CONFIG تعریف می‌شوند.

همچنین می‌توانید مسیرهای پرونده‌های پیکربندی گیت‌وب را در زمان اجرا با تنظیم متغیرهای محیطی زیر به مقداری غیرخالی بازنویسی کنید: GITWEB_CONFIG_COMMON، GITWEB_CONFIG_SYSTEM و GITWEB_CONFIG.

دستور زبان پرونده‌های پیکربندی همان دستور زبان پرل است، زیرا این پرونده‌ها با سورس کردن آن‌ها به عنوان قطعاتی از کد پرل (زبانی که خود گیت‌وب به آن نوشته شده است) پردازش می‌شوند. متغیرها معمولاً با استفاده از شناسه our مقداردهی می‌شوند (مانند "our $variable = <value>;") تا در صورتی که نسخه جدیدی از گیت‌وب دیگر از یک متغیر استفاده نکرد و اعلان آن را متوقف کرد، از خطاهای نحوی جلوگیری شود.

می‌توانید با استفاده از زیرروال read_config_file() پرونده پیکربندی دیگری را وارد (include) کنید. برای مثال، ممکن است بخواهید پیکربندی گیت‌وب مربوط به کنترل دسترسی برای مشاهده مخازن از طریق Gitolite (یکی از ابزارهای مدیریت مخزن گیت) را در فایلی جداگانه قرار دهید، مثلاً در /etc/gitweb-gitolite.conf. برای گنجاندن آن، دستور زیر را

read_config_file("/etc/gitweb-gitolite.conf");

در جایی از پرونده پیکربندی گیت‌وب مورد استفاده قرار دهید، مثلاً در پرونده پیکربندی گیت‌وب به ازای نصب. توجه داشته باشید که read_config_file() خود بررسی می‌کند که فایلی که می‌خواند وجود داشته باشد، و اگر پیدا نشود هیچ کاری انجام نمی‌دهد. این تابع همچنین خطاهای موجود در فایل گنجانده‌شده را مدیریت می‌کند.

پیکربندی پیش‌فرض بدون وجود هیچ پرونده پیکربندی ممکن است برای برخی نصب‌ها کاملاً مناسب کار کند. با این حال، یک پرونده پیکربندی برای سفارشی‌سازی یا تنظیم دقیق رفتار گیت‌وب از جنبه‌های مختلف بسیار مفید است، و برخی قابلیت‌های اختیاری تا زمانی که صراحتاً با استفاده از متغیر قابل پیکربندی %features فعال نشوند، در دسترس نخواهند بود (بخش «پیکربندی قابلیت‌های گیت‌وب» را در زیر نیز ببینید).

برخی متغیرهای پیکربندی دارای مقادیر پیش‌فرضی هستند (که در اسکریپت CGI جاسازی شده است) که هنگام ساخت گیت‌وب تنظیم شده‌اند — اگر چنین باشد، این موضوع در توضیحات آن‌ها ذکر شده است. برای دستورالعمل‌های مربوط به ساخت و نصب گیت‌وب به فایل INSTALL گیت‌وب مراجعه کنید.

متغیرهای پیکربندی شرح داده شده در زیر نحوه یافتن مخازن گیت توسط گیت‌وب و چگونگی نمایش و دسترسی به آن‌ها را کنترل می‌کنند.

همچنین بخش‌های "Repositories" و زیربخش‌های بعدی را در صفحه راهنمای gitweb(1) ببینید.

$projectroot

مسیر مطلق فایل‌سیستمی که به ابتدای مسیر پروژه افزوده خواهد شد؛ مسیر منتهی به مخزن برابر با $projectroot/$project خواهد بود. در زمان نصب روی $GITWEB_PROJECTROOT تنظیم می‌شود. این متغیر برای اینکه گیت‌وب بتواند مخازن را پیدا کند باید به درستی مقداردهی شود.

به عنوان مثال، اگر $projectroot با قرار دادن خط زیر در پرونده پیکربندی گیت‌وب روی "/srv/git" تنظیم شده باشد:

our $projectroot = "/srv/git";

آنگاه نشانی

و معادل مبتنی بر path_info آن

به مسیر /srv/git/foo/bar.git روی فایل‌سیستم نگاشت خواهد شد.

$projects_list

نام یک فایل متنی ساده حاوی فهرست پروژه‌ها، یا نام دایرکتوری‌ای که برای یافتن پروژه‌ها باید پویش شود.

فایل‌های فهرست پروژه باید در هر خط یک پروژه را با قالبی به شکل زیر فهرست کنند:

<URI-encoded filesystem path to repository> SP <URI-encoded repository owner>

مقدار پیش‌فرض این متغیر توسط متغیر makefile به نام GITWEB_LIST در زمان نصب تعیین می‌شود. اگر این متغیر خالی باشد، گیت‌وب به پویش دایرکتوری $projectroot برای یافتن مخازن متوسل خواهد شد.

$project_maxdepth

اگر متغیر $projects_list تنظیم نشده باشد، گیت‌وب فایل‌سیستم را به صورت بازگشتی برای یافتن مخازن گیت پویش خواهد کرد. متغیر $project_maxdepth برای محدود کردن عمق پیمایش نسبت به $projectroot (نقطه شروع) استفاده می‌شود؛ این بدان معناست که دایرکتوری‌هایی که فاصله آن‌ها از $projectroot بیشتر از $project_maxdepth باشد نادیده گرفته می‌شوند.

این متغیر صرفاً یک بهینه‌سازی عملکردی است، که در ابتدا برای MacOS X که پیمایش بازگشتی دایرکتوری‌ها در آن کند است طراحی شده بود. گیت‌وب پیوندهای نمادین را دنبال می‌کند، اما چرخه‌ها را شناسایی کرده و فایل‌ها و دایرکتوری‌های تکراری را نادیده می‌گیرد.

مقدار پیش‌فرض این متغیر توسط متغیر پیکربندی زمان ساخت GITWEB_PROJECT_MAXDEPTH تعیین می‌شود، که پیش‌فرض آن 2007 است.

$export_ok

مخزن را تنها در صورتی نشان بده که این فایل (درون مخزن) وجود داشته باشد. تنها در صورتی موثر است که این متغیر مقدار درستی (true) داشته باشد. می‌تواند در زمان ساخت گیت‌وب با تنظیم GITWEB_EXPORT_OK مشخص شود. این مسیر نسبت به GIT_DIR سنجیده می‌شود. دستور git-daemon(1) از git-daemon-export-ok استفاده می‌کند، مگر اینکه با --export-all اجرا شده باشد. به طور پیش‌فرض این متغیر تنظیم نشده است، که به این معنی است که این قابلیت غیرفعال است.

$export_auth_hook

تابعی که برای تعیین اینکه کدام مخازن باید نشان داده شوند استفاده می‌شود. این زیرروال باید یک پارامتر دریافت کند که مسیر کامل به یک پروژه است، و اگر مقدار درستی (true) بازگرداند، آن پروژه در لیست پروژه‌ها قرار می‌گیرد و تا زمانی که سایر شروط مشخص‌شده توسط $export_ok، $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";

اگر تنظیم نشده باشد (حالت پیش‌فرض)، به این معنی است که این قابلیت غیرفعال است.

همچنین مثال پیچیده‌تر را در زیربخش "Controlling access to Git repositories" در صفحه راهنمای gitweb(1) ببینید.

$strict_export

تنها اجازه مشاهده مخازنی را بده که در صفحه نمای کلی (overview) نیز نشان داده می‌شوند. برای مثال این گزینه باعث می‌شود فایل $export_ok در دسترس بودن مخزن را تعیین کند و نه فقط نشان داده شدن آن را. اگر $projects_list به فایلی با فهرست پروژه‌ها اشاره کند، تنها آن دسته از مخازنی که فهرست شده‌اند برای گیت‌وب در دسترس خواهند بود. می‌تواند در زمان ساخت گیت‌وب از طریق GITWEB_STRICT_EXPORT تنظیم شود. به طور پیش‌فرض این متغیر تنظیم نشده است، که به این معنی است که می‌توانید مستقیماً به مخازنی که از صفحه فهرست پروژه‌ها پنهان شده‌اند (مثلاً در فایل $projects_list فهرست نشده‌اند) دسترسی پیدا کنید.

متغیرهای پیکربندی زیر به گیت‌وب می‌گویند که فایل‌ها را در کجا بیابد. مقادیر این متغیرها مسیرهایی روی فایل‌سیستم هستند.

$GIT

فایل اجرایی هسته گیت برای استفاده. به طور پیش‌فرض روی $GIT_BINDIR/git, تنظیم شده است، که آن هم به طور پیش‌فرض روی $(bindir)/git تنظیم است. اگر از گیت نصب‌شده از طریق بسته باینری استفاده می‌کنید، معمولاً باید این مقدار را روی "/usr/bin/git" تنظیم کنید. اگر وب‌سرور شما متغیر PATH معقولی دارد، می‌تواند صرفاً "git" باشد؛ از نقطه نظر امنیتی بهتر است از مسیر مطلق به باینری گیت استفاده شود. اگر چندین نسخه گیت نصب دارید، می‌توان از این گزینه برای انتخاب اینکه کدام نسخه استفاده شود بهره برد. برای اینکه گیت‌وب بتواند کار کند باید (به درستی) تنظیم شده باشد.

$mimetypes_file

فایلی که برای حدس زدن نوع MIME (بر اساس پسوند نام فایل) پیش از آزمایش /etc/mime.types استفاده می‌شود. توجه کنید که این مسیر، در صورت نسبی بودن، نسبت به مخزن جاری گیت سنجیده می‌شود، نه نسبت به اسکریپت CGI. اگر تنظیم نشود، فقط از /etc/mime.types (در صورت وجود در فایل‌سیستم) استفاده می‌شود. اگر هیچ فایل mimetypes پیدا نشود، حدس زدن mimetype بر اساس پسوند فایل غیرفعال خواهد شد. به طور پیش‌فرض تنظیم نشده است.

$highlight_bin

مسیر فایل اجرایی highlight برای استفاده (به دلیل فرضیات مربوط به پارامترها و خروجی، باید نسخه موجود در http://andre-simon.de/zip/download.php باشد). به طور پیش‌فرض روی highlight تنظیم شده است؛ اگر در PATH وب‌سرور شما نصب نیست، آن را روی مسیر کامل فایل اجرایی highlight تنظیم کنید. توجه داشته باشید که قابلیت highlight باید فعال شده باشد تا گیت‌وب عملاً از برجسته‌سازی نحوی استفاده کند.

نکته: برای اینکه یک فایل برجسته شود، نوع دستور زبان آن باید تشخیص داده شود و آن دستور زبان باید توسط "highlight" پشتیبانی شود. تشخیص پیش‌فرض دستور زبان در حداقل است، و انواع زیادی از دستورهای زبان پشتیبانی‌شده وجود دارند که به طور پیش‌فرض تشخیصی برای آن‌ها تعریف نشده است. سه گزینه برای افزودن تشخیص دستور زبان وجود دارد. اولویت اول و دوم %highlight_basename و %highlight_ext هستند، که بر اساس نام پایه (نام کامل فایل، مثلاً "Makefile") و پسوند (مثلاً "sh") تشخیص می‌دهند. کلیدهای این هش‌ها به ترتیب نام پایه و پسوند هستند، و مقدار هر کلید، نام دستور زبانی است که باید از طریق --syntax <syntax> به "highlight" ارسال شود. اولویت آخر پیکربندی عبارت‌های منظم Shebang در "highlight" برای تشخیص زبان بر اساس خط اول فایل است (به عنوان مثال، تطبیق خط "#!/bin/bash"). برای جزئیات بیشتر به مستندات highlight و پیکربندی پیش‌فرض در /etc/highlight/filetypes.conf مراجعه فرمایید.

به عنوان مثال، اگر مخازنی که میزبانی می‌کنید از پسوند "phtml" برای فایل‌های PHP استفاده می‌کنند، و می‌خواهید برجسته‌سازی نحوی صحیح برای این فایل‌ها داشته باشید، می‌توانید خطوط زیر را به پیکربندی گیت‌وب اضافه کنید:

our %highlight_ext;
$highlight_ext{'phtml'} = 'php';

متغیرهای پیکربندی که در زیر توضیح داده شده‌اند برخی از پیوندهای گیت‌وب را پیکربندی می‌کنند: مقصد آن‌ها، ظاهر آن‌ها (متن یا تصویر)، و اینکه پیش‌نیازهای صفحه (برگه سبک‌بندی، آیکون وب‌سایت یا فاوآیکون، تصاویر، اسکریپت‌ها) در کجا یافت شوند. معمولاً این‌ها در مقادیر پیش‌فرض خود باقی می‌مانند، به استثنای احتمالی متغیر @stylesheets.

@stylesheets

فهرستی از شناسه‌های URI برگه‌های سبک‌بندی CSS (نسبت به URI پایه صفحه). می‌توانید بیش از یک برگه سبک‌بندی تعیین کنید، مثلاً برای استفاده از "gitweb.css" به عنوان پایه همراه با اصلاحات اختصاصی سایت در یک برگه سبک‌بندی مجزا تا ارتقای گیت‌وب آسان‌تر شود. برای مثال، می‌توانید یک برگه سبک‌بندی site را با قرار دادن
push @stylesheets, "gitweb-site.css";

در پرونده پیکربندی گیت‌وب اضافه کنید. مقادیری که مسیرهای نسبی هستند نسبت به URI پایه گیت‌وب سنجیده می‌شوند.

این لیست باید حاوی URI برگه سبک‌بندی استاندارد گیت‌وب باشد. مقدار پیش‌فرض URI برگه سبک‌بندی گیت‌وب را می‌توان در زمان ساخت با استفاده از متغیر makefile به نام GITWEB_CSS تنظیم کرد. مقدار پیش‌فرض آن static/gitweb.css است (یا static/gitweb.min.css اگر متغیر CSSMIN تعریف شده باشد، یعنی از فشرده‌ساز CSS در طول ساخت استفاده شده باشد).

نکته: یک متغیر پیکربندی قدیمی به نام $stylesheet نیز وجود دارد که در نسخه‌های قدیمی‌تر گیت‌وب استفاده می‌شد. اگر متغیر $stylesheet تعریف شده باشد، گیت‌وب تنها از برگه سبک‌بندی CSS مشخص‌شده توسط این متغیر استفاده می‌کند.

$logo

به مکانی اشاره می‌کند که git-logo.png را در وب‌سرور خود در آنجا قرار داده‌اید، یا به بیان کلی‌تر URI نشان‌واره (لوگو) با ابعاد 72x27 است. این تصویر در گوشه بالا سمت راست هر صفحه گیت‌وب نمایش داده می‌شود و به عنوان لوگوی خوراک Atom استفاده می‌گردد. نسبت به URI پایه گیت‌وب (به عنوان یک مسیر) سنجیده می‌شود. در زمان ساخت گیت‌وب با استفاده از متغیر GITWEB_LOGO قابل تنظیم است. به طور پیش‌فرض روی static/git-logo.png تنظیم شده است.

$favicon

به مکانی اشاره می‌کند که git-favicon.png را در وب‌سرور خود قرار داده‌اید، یا به بیان کلی‌تر URI آیکون سایت (فاوآیکون) است، که با نوع "image/png" ارسال خواهد شد. مرورگرهای وبی که از فاوآیکون‌ها پشتیبانی می‌کنند ممکن است آن‌ها را در نوار URL مرورگر و در کنار نام سایت در بوک‌مارک‌ها نمایش دهند. نسبت به URI پایه گیت‌وب سنجیده می‌شود. در زمان ساخت با استفاده از متغیر GITWEB_FAVICON قابل تنظیم است. به طور پیش‌فرض روی static/git-favicon.png تنظیم شده است.

$javascript

به مکانی اشاره می‌کند که gitweb.js را در وب‌سرور خود قرار داده‌اید، یا به طور کلی‌تر URI کد جاوااسکریپت مورد استفاده گیت‌وب است. نسبت به URI پایه گیت‌وب سنجیده می‌شود. می‌تواند در زمان ساخت با استفاده از متغیر پیکربندی زمان ساخت GITWEB_JS تنظیم شود.

مقدار پیش‌فرض آن static/gitweb.js، یا static/gitweb.min.js است اگر متغیر ساخت JSMIN تعریف شده باشد، یعنی اگر در زمان ساخت از فشرده‌ساز جاوااسکریپت استفاده شده باشد. نکته اینکه این فایل واحد از چندین ماژول مجزای جاوااسکریپت تولید شده است.

$home_link

مقصد پیوند خانه در بالای تمام صفحات (بخش اول از زنجیره پیوندهای ناوبری یا "breadcrumbs"). به طور پیش‌فرض روی URI مطلق صفحه جاری تنظیم شده است (برابر با مقدار متغیر $my_uri، یا اگر $my_uri تعریف‌نشده یا رشته‌ای خالی باشد برابر با "/").

$home_link_str

عنوان «پیوند خانه» در بالای تمام صفحات، که به $home_link ختم می‌شود (معمولاً صفحه اصلی گیت‌وب، که حاوی فهرست پروژه‌ها است). به عنوان نخستین بخش از مسیر ناوبری گیت‌وب استفاده می‌شود: <home-link> / <project> / <action>. می‌تواند در زمان ساخت با استفاده از متغیر GITWEB_HOME_LINK_STR تنظیم شود. به طور پیش‌فرض روی "projects" تنظیم شده است، زیرا این پیوند به فهرست پروژه‌ها هدایت می‌کند. یک انتخاب محبوب دیگر، تنظیم آن به نام سایت است. توجه داشته باشید که با آن به عنوان HTML خام برخورد می‌شود، بنابراین نباید از منابع غیرقابل اعتماد مقداردهی شود.

@extra_breadcrumbs

پیوندهای اضافی برای افزودن به ابتدای مسیر ناوبری قبل از پیوند خانه، برای صفحاتی که از نظر منطقی «بالاتر» از فهرست پروژه‌های گیت‌وب قرار دارند، مانند سازمان یا بخشی که سرور گیت‌وب را میزبانی می‌کند. هر عضو این لیست یک ارجاع به یک آرایه است که در آن عنصر شماره ۰ متن پیوند (معادل $home_link_str) و عنصر شماره ۱ آدرس اینترنتی مقصد (معادل $home_link) است.

برای مثال، تنظیمات زیر یک مسیر ناوبری مانند "home / dev / projects / ..." تولید می‌کند که در آن "projects" پیوند خانه است.

our @extra_breadcrumbs = (
  [ 'home' => 'https://www.example.org' ],
  [ 'dev'  => 'https://dev.example.org' ],
);

$logo_url, $logo_label

آدرس URI و عنوان (title) برای پیوند نشان‌واره گیت (یا نشان‌واره سایت شما، در صورتی که تصمیم گرفته‌اید از تصویر نشان‌واره متفاوتی استفاده کنید). به طور پیش‌فرض، هر دو به صفحه اصلی گیت، https://git-scm.com اشاره دارند؛ در گذشته به مستندات گیت در https://www.kernel.org اشاره می‌کردند.

می‌توانید نحوه نمایش صفحات تولیدشده توسط گیت‌وب را با استفاده از متغیرهای شرح داده شده در زیر تنظیم کنید. می‌توانید نام سایت را تغییر دهید، هدرها و فوترهای مشترک برای تمام صفحات اضافه کنید، و توضیحاتی درباره این نصب گیت‌وب در صفحه اصلی آن (که همان صفحه فهرست پروژه‌هاست) بیفزایید، و غیره.

$site_name

نام سایت یا سازمان شما، برای نمایش در عناوین صفحات. آن را روی چیزی توصیفی برای نشانک‌گذاری‌های واضح‌تر و غیره تنظیم کنید. اگر این متغیر تنظیم نشده باشد، گیت‌وب از مقدار متغیر محیطی SERVER_NAME در CGI استفاده می‌کند و نام سایت را روی "$SERVER_NAME Git" یا در صورت عدم تنظیم این متغیر روی "Untitled Git" تنظیم می‌نماید (مثلاً اگر گیت‌وب را به عنوان یک اسکریپت مستقل اجرا کنید).

می‌تواند با استفاده از متغیر GITWEB_SITENAME در زمان ساخت تنظیم شود. به طور پیش‌فرض تنظیم نشده است.

$site_html_head_string

قطعه کد HTML برای گنجانده شدن در بخش <head> هر صفحه. می‌تواند با استفاده از GITWEB_SITE_HTML_HEAD_STRING در زمان ساخت تنظیم شود. مقدار پیش‌فرضی ندارد.

$site_header

نام فایلی حاوی HTML که باید در بالای هر صفحه قرار گیرد. نسبت به دایرکتوری حاوی اسکریپت gitweb.cgi سنجیده می‌شود. می‌تواند با استفاده از GITWEB_SITE_HEADER در زمان ساخت تنظیم شود. بدون مقدار پیش‌فرض.

$site_footer

نام فایلی حاوی HTML که باید در پایین هر صفحه قرار گیرد. نسبت به دایرکتوری حاوی اسکریپت gitweb.cgi سنجیده می‌شود. می‌تواند با استفاده از GITWEB_SITE_FOOTER در زمان ساخت تنظیم شود. بدون مقدار پیش‌فرض.

$home_text

نام یک فایل HTML که در صورت وجود، در صفحه نمای کلی پروژه‌های گیت‌وب (نمای "projects_list") گنجانده می‌شود. نسبت به دایرکتوری حاوی اسکریپت gitweb.cgi سنجیده می‌شود. مقدار پیش‌فرض می‌تواند در طول زمان ساخت با استفاده از متغیر GITWEB_HOMETEXT تنظیم شود. به طور پیش‌فرض روی indextext.html تنظیم شده است.

$projects_list_description_width

عرض (بر حسب نویسه / کاراکتر) ستون "Description" در فهرست پروژه‌ها. توضیحات طولانی‌تر کوتاه خواهند شد (تلاش می‌شود در مرز کلمات بریده شود)؛ توضیح کامل در مشخصه title در دسترس است (معمولاً هنگام نگه داشتن ماوس روی آن نمایش داده می‌شود). مقدار پیش‌فرض 25 است، که اگر از توضیحات طولانی برای پروژه‌ها استفاده می‌کنید ممکن است خیلی کوچک باشد.

$default_projects_order

ترتیب پیش‌فرض پروژه‌ها در صفحه فهرست پروژه‌ها؛ به این معنی که اگر فهرست پروژه‌ها را صراحتاً مرتب نکنید (اگر پارامتر پرسمان "o" در URL وجود نداشته باشد) از این ترتیب استفاده می‌شود. مقادیر معتبر عبارتند از "none" (نامرتب)، "project" (بر اساس نام پروژه، یعنی مسیر مخزن نسبت به $projectroot)، "descr" (توضیحات پروژه)، "owner" (مالک)، و "age" (بر اساس تاریخ جدیدترین کامیت).

مقدار پیش‌فرض "project" است. مقدار ناشناخته به معنای نامرتب است.

این متغیرهای پیکربندی رفتار داخلی گیت‌وب را کنترل می‌کنند.

$default_blob_plain_mimetype

نوع پیش‌فرض mimetype برای نمای blob_plain (خام)، در صورتی که بررسی mimetype منجر به نوع دیگری نشود؛ به طور پیش‌فرض "text/plain". گیت‌وب نوع mimetype فایلی را که می‌خواهد نمایش دهد بر اساس پسوند نام فایل آن، با استفاده از $mimetypes_file (در صورت تنظیم و وجود فایل) و فایل‌های /etc/mime.types حدس می‌زند (صفحه راهنمای mime.types(5) را ببینید؛ فقط قواعد پسوند نام فایل توسط گیت‌وب پشتیبانی می‌شوند).

$default_text_plain_charset

مجموعه نویسه (charset) پیش‌فرض برای فایل‌های متنی. اگر این مقدار تنظیم نشود، از پیکربندی وب‌سرور استفاده خواهد شد. به طور پیش‌فرض تنظیم نشده است.

$fallback_encoding

گیت‌وب زمانی که یک خط شامل نویسه‌های غیر UTF-8 باشد، این مجموعه نویسه را فرض می‌کند. رمزگشایی جایگزین بدون بررسی خطا استفاده می‌شود، بنابراین حتی می‌تواند "utf-8" باشد. مقدار باید یک کدگذاری معتبر باشد؛ صفحه‌نمای Encoding::Supported(3pm) را برای فهرستی از آن‌ها ببینید. مقدار پیش‌فرض "latin1" یا همان "iso-8859-1" است.

@diff_opts

گزینه‌های تشخیص تغییر نام برای git-diff و git-diff-tree. مقدار پیش‌فرض ('-M') است؛ آن را روی ('-C') یا ('-C', '-C') تنظیم کنید تا کپی‌ها نیز تشخیص داده شوند، یا آن را روی () یعنی یک لیست خالی تنظیم کنید اگر نمی‌خواهید تشخیص تغییر نام انجام شود.

توجه کنید که تشخیص تغییر نام و به ویژه تشخیص کپی می‌تواند بسیار بار پردازشی (CPU) بالایی داشته باشد. همچنین توجه داشته باشید که ابزارهای غیر گیت ممکن است با وصله‌های تولیدشده با گزینه‌های یادشده مشکل داشته باشند، به خصوص زمانی که شامل کپی فایل ('-C') یا تغییر نام متقاطع ('-B') باشند.

بیشتر قابلیت‌ها از طریق هش %feature پیکربندی می‌شوند؛ با این حال برخی قابلیت‌های اضافه گیت‌وب را می‌توان با استفاده از متغیرهای شرح داده شده در زیر روشن و پیکربندی کرد. این لیست در کنار متغیرهای پیکربندی که ظاهر گیت‌وب را کنترل می‌کنند، شامل متغیرهایی است که جنبه‌های مدیریتی گیت‌وب را پیکربندی می‌نمایند (مثلاً جلوگیری از حملات تزریق اسکریپت یا XSS؛ که البته به عنوان یک اثر جانبی بر ظاهر صفحات "summary" یا محدودسازی بار اثر می‌گذارد).

@git_base_url_list

فهرستی از URLهای پایه گیت. این URLها برای تولید نشانی‌هایی استفاده می‌شوند که نشان می‌دهند یک پروژه را از کجا می‌توان واکشی کرد، که در صفحه خلاصه پروژه نمایش داده می‌شوند. آدرس کامل واکشی برای هر عضو این لیست برابر با "$git_base_url/$project" است. می‌توانید چندین URL پایه را راه‌اندازی کنید (مثلاً یکی برای پروتکل git:// و دیگری برای پروتکل http://).

توجه داشته باشید که پیکربندی به ازای هر مخزن می‌تواند در فایل $GIT_DIR/cloneurl یا به عنوان مقادیر متغیر چندمقداری gitweb.url در پیکربندی پروژه تنظیم شود. پیکربندی به ازای هر مخزن بر مقدار ساخته‌شده از اعضای @git_base_url_list و نام پروژه اولویت دارد.

می‌توانید یک مقدار تکی (یک مدخل در این لیست) را در زمان ساخت با تنظیم متغیر پیکربندی زمان ساخت GITWEB_BASE_URL مشخص کنید. به طور پیش‌فرض روی () یعنی یک لیست خالی تنظیم شده است. این بدان معنی است که گیت‌وب تلاشی برای ساخت URL پروژه (جهت واکشی) از روی نام پروژه نخواهد کرد.

$projects_list_group_categories

آیا گروه‌بندی پروژه‌ها بر اساس دسته‌بندی در صفحه فهرست پروژه‌ها فعال باشد یا خیر. دسته‌بندی یک پروژه توسط فایل $GIT_DIR/category یا متغیر gitweb.category در پیکربندی هر مخزن تعیین می‌شود. به طور پیش‌فرض غیرفعال است (روی 0 تنظیم شده است).

$project_list_default_category

دسته‌بندی پیش‌فرض برای پروژه‌هایی که هیچ دسته‌ای برای آن‌ها مشخص نشده است. اگر روی یک رشته خالی تنظیم شود، چنین پروژه‌هایی بدون دسته‌بندی باقی می‌مانند و در بالای صفحه، بالاتر از پروژه‌های دسته‌بندی‌شده فهرست می‌شوند. فقط در صورتی استفاده می‌شود که دسته‌بندی پروژه‌ها فعال باشد، یعنی اگر $projects_list_group_categories برابر با درستی (true) باشد. به طور پیش‌فرض روی "" (رشته خالی) تنظیم شده است.

$prevent_xss

اگر درست باشد، برخی قابلیت‌های گیت‌وب برای جلوگیری از اجرای حملات تزریق اسکریپت از طریق وب‌گاه (XSS) توسط محتوای موجود در مخازن، غیرفعال می‌شوند. اگر به محتوای مخازن خود اعتماد ندارید این مقدار را روی true قرار دهید. به طور پیش‌فرض نادرست است (روی 0 تنظیم شده است).

$maxload

برای تنظیم حداکثر بار سیستمی استفاده می‌شود که در آن هنوز به پرس‌وجوهای گیت‌وب پاسخ می‌دهیم. اگر بار سرور از این مقدار تجاوز کند، گیت‌وب خطای "503 Service Unavailable" را برمی‌گرداند. اگر گیت‌وب نتواند بار سرور را تعیین کند، مقدار آن 0 در نظر گرفته می‌شود. در حال حاضر فقط روی لینوکس کار می‌کند، جایی که از /proc/loadavg استفاده می‌کند؛ بار در آنجا تعداد وظایف فعال در سیستم است — فرآیندهایی که واقعاً در حال اجرا هستند — میانگین‌گیری‌شده در یک دقیقه گذشته.

مقدار $maxload را روی مقدار تعریف‌نشده (undef) تنظیم کنید تا این قابلیت خاموش شود. مقدار پیش‌فرض 300 است.

$omit_age_column

اگر درست باشد، ستون مربوط به تاریخ جدیدترین کامیت را در صفحه فهرست پروژه‌ها حذف می‌کند. این کار می‌تواند در مصرف I/O و ایجاد یک فرآیند فرعی (fork) به ازای هر مخزن صرفه‌جویی کند.

$omit_owner

اگر درست باشد، از نمایش اطلاعات درباره مالک مخزن جلوگیری می‌کند.

$per_request_config

اگر روی یک ارجاع به کد تنظیم شده باشد، یک بار برای هر درخواست اجرا خواهد شد. می‌توانید بخش‌هایی از پیکربندی را که به ازای هر نشست تغییر می‌کنند از این طریق تنظیم نمایید. به عنوان مثال، ممکن است از کد زیر در پرونده پیکربندی گیت‌وب استفاده شود:
our $per_request_config = sub {
        $ENV{GL_USER} = $cgi->remote_user || "gitweb";
};

اگر $per_request_config یک ارجاع به کد نباشد، به عنوان مقدار بولی تفسیر می‌شود. اگر درست باشد، گیت‌وب پرونده‌های پیکربندی را یک بار برای هر درخواست پردازش می‌کند، و اگر نادرست باشد، گیت‌وب پرونده‌های پیکربندی را فقط یک بار، در هر بار اجرای خود، پردازش خواهد کرد. به طور پیش‌فرض درست است (روی 1 تنظیم شده است).

توجه: متغیرهای $my_url، $my_uri و $base_url پیش از هر درخواست با مقادیر پیش‌فرض خود بازنویسی می‌شوند، بنابراین اگر می‌خواهید آن‌ها را تغییر دهید، حتماً این متغیر را روی true یا یک ارجاع کد که تغییرات دلخواه را اعمال می‌کند تنظیم کنید.

این متغیر فقط زمانی اهمیت دارد که از محیط‌های وب پایا که چندین درخواست را با استفاده از یک نمونه منفرد گیت‌وب پاسخ می‌دهند (مانند mod_perl، FastCGI یا Plackup) استفاده شود.

معمولاً نیازی به تغییر (تنظیم) هیچ‌یک از متغیرهای پیکربندی شرح داده شده در زیر نخواهید داشت؛ آن‌ها باید به طور خودکار توسط گیت‌وب روی مقادیر صحیح تنظیم شوند.

$version

نسخه گیت‌وب، که هنگام ایجاد gitweb.cgi از gitweb.perl به طور خودکار تنظیم می‌شود. اگر نسخه سفارشی‌شده‌ای از گیت‌وب را اجرا می‌کنید ممکن است بخواهید آن را تغییر دهید، برای مثال
our $version .= " with caching";

اگر نسخه تغییریافته‌ای از گیت‌وب را با پشتیبانی از ذخیره‌سازی موقت (caching) اجرا می‌کنید. این متغیر صرفاً اطلاعاتی است، و مثلاً در متاتگ "generator" در هدر HTML استفاده می‌شود.

$my_url, $my_uri

نشانی اینترنتی کامل و نشانی اینترنتی مطلق اسکریپت گیت‌وب؛ در نسخه‌های اولیه گیت‌وب ممکن بود نیاز به تنظیم این متغیرها داشته باشید، اما اکنون نباید نیازی به این کار باشد. اگر هنوز نیاز به تنظیم آن‌ها دارید $per_request_config را ببینید.

$base_url

نشانی پایه برای URLهای نسبی در صفحات تولیدشده توسط گیت‌وب (مثلاً $logo، $favicon، @stylesheets اگر آدرس‌های نسبی باشند)، که فقط برای URLهایی با PATH_INFO غیرخالی نیاز بوده و به صورت <base href="$base_url"> استفاده می‌شود. معمولاً گیت‌وب مقدار آن را به درستی تنظیم می‌کند، و نیازی به تنظیم این متغیر نیست (مثلاً به $my_uri یا "/"). اگر با این حال نیاز به بازنویسی آن دارید $per_request_config را ببینید.

بسیاری از قابلیت‌های گیت‌وب را می‌توان با استفاده از هش %feature فعال (یا غیرفعال) و پیکربندی کرد. نام‌های قابلیت‌های گیت‌وب کلیدهای این هش هستند.

هر عضو هش %feature یک ارجاع هش است و ساختار زیر را دارد:

"<feature-name>" => {
        "sub" => <feature-sub-(subroutine)>,
        "override" => <allow-override-(boolean)>,
        "default" => [ <options>... ]
},

برخی قابلیت‌ها را نمی‌توان به ازای هر پروژه بازنویسی کرد. برای این قابلیت‌ها، ساختار عضو متناظر در هش %feature فرم ساده‌تری دارد:

"<feature-name>" => {
        "override" => 0,
        "default" => [ <options>... ]
},

همان‌طور که مشاهده می‌شود، عنصر 'sub' را ندارد.

معنای هر بخش از پیکربندی قابلیت در زیر شرح داده شده است:

default

فهرستی (ارجاع به آرایه) از پارامترهای قابلیت (در صورت وجود)، که همچنین برای تغییر وضعیت (فعال یا غیرفعال کردن) قابلیت مورد نظر استفاده می‌شود.

توجه داشته باشید که در حال حاضر این عنصر همیشه یک ارجاع به آرایه است، حتی اگر قابلیت هیچ پارامتر پیکربندی نپذیرد، و 'default' فقط برای روشن یا خاموش کردن آن استفاده شود. در چنین حالتی با تنظیم این عنصر روی [1] قابلیت را روشن کرده و با تنظیم آن روی [0] آن را خاموش می‌کنید. همچنین به بخش مربوط به قابلیت "blame" در بخش «مثال‌ها» مراجعه نمایید.

برای غیرفعال کردن قابلیت‌هایی که پارامتر می‌پذیرند (قابل پیکربندی هستند)، باید این عنصر را روی یک لیست خالی یعنی [] تنظیم کنید.

override

اگر این فیلد دارای مقدار درستی (true) باشد، آنگاه قابلیت مورد نظر قابل بازنویسی است، به این معنی که می‌تواند به ازای هر مخزن پیکربندی (یا فعال/غیرفعال) شود.

معمولاً یک "<feature>" از طریق متغیر پیکربندی gitweb.<feature> در پرونده پیکربندی گیت به ازای هر مخزن قابل تنظیم است.

توجه کنید که هیچ قابلیتی به طور پیش‌فرض قابل بازنویسی نیست.

sub

جزئیات داخلی پیاده‌سازی. آنچه اهمیت دارد این است که اگر این فیلد وجود نداشته باشد، بازنویسی به ازای هر مخزن برای قابلیت مذکور پشتیبانی نمی‌شود.

هرگز نیازی به تغییر آن در پرونده پیکربندی گیت‌وب نخواهید داشت.

قابلیت‌های گیت‌وب که از طریق هش %feature قابل پیکربندی هستند در زیر فهرست شده‌اند. این فهرست باید جامع باشد، اما در نهایت منبع موثق و کامل کد منبع gitweb.cgi است، که در آن قابلیت‌ها در کامنت‌ها توضیح داده شده‌اند.

blame

نماهای "blame" و "blame_incremental" را برای شیء blob فعال می‌کند، که برای هر خط آخرین کامیتی را که آن را تغییر داده نشان می‌دهد؛ به git-blame(1) مراجعه کنید. این قابلیت می‌تواند بار پردازشی بالایی داشته باشد و بنابراین به طور پیش‌فرض غیرفعال است.

این قابلیت می‌تواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.blame مخزن (بولی) پیکربندی شود.

snapshot

عملیات "snapshot" را فعال و پیکربندی می‌کند، که به کاربر امکان می‌دهد یک آرشیو فشرده از هر درخت یا کامیت را دانلود کند، به همان صورت که توسط git-archive(1) تولید شده و احتمالاً به صورت اضافه فشرده شده است. اگر پروژه بزرگی داشته باشید این قابلیت می‌تواند ترافیک بالایی ایجاد کند.

مقدار 'default' فهرستی از نام‌های قالب‌های snapshot است، که در هش %known_snapshot_formats تعریف شده‌اند، که می‌خواهید ارائه دهید. قالب‌های پشتیبانی‌شده شامل "tgz"، "tbz2"، "txz" (آرشیو tar فشرده‌شده با gzip/bzip2/xz) و "zip" هستند؛ لطفاً برای فهرست قطعی به سورس‌های گیت‌وب مراجعه کنید. به طور پیش‌فرض فقط "tgz" ارائه می‌شود.

این قابلیت می‌تواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.snapshot مخزن، که حاوی فهرستی جداشده با کاما از قالب‌ها یا "none" برای غیرفعال کردن snapshot است، پیکربندی شود. مقادیر ناشناخته نادیده گرفته می‌شوند.

grep

جستجوی grep را فعال می‌کند، که فایل‌های موجود در درخت (دایرکتوری) انتخاب‌شده فعلی را که حاوی رشته مشخص‌شده هستند فهرست می‌نماید؛ به git-grep(1) مراجعه کنید. البته این قابلیت می‌تواند پردازش زیادی بطلبد. به طور پیش‌فرض فعال است.

این قابلیت می‌تواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.grep مخزن (بولی) پیکربندی شود.

pickaxe

جستجوی موسوم به pickaxe را فعال می‌کند، که کامیت‌هایی را فهرست می‌نماید که رشته مشخص‌شده‌ای را در یک فایل اضافه یا حذف کرده‌اند. این می‌تواند یک جایگزین کاربردی و بسیار سریع‌تر برای عملیات "blame" باشد، اما همچنان می‌تواند پردازش بالایی مصرف کند. به طور پیش‌فرض فعال است.

جستجوی pickaxe در git-log(1) شرح داده شده است (توضیح گزینه -S<string>، که برای جزئیات بیشتر به بخش pickaxe در gitdiffcore(7) ارجاع می‌دهد).

این قابلیت می‌تواند به ازای هر مخزن با تنظیم متغیر پیکربندی gitweb.pickaxe مخزن (بولی) پیکربندی شود.

show-sizes

نمایش اندازه blobها (فایل‌های معمولی) را در نمای "tree"، در یک ستون مجزا، مشابه آنچه دستور ls -l انجام می‌دهد، فعال می‌کند؛ توضیحات گزینه -l را در صفحه راهنمای git-ls-tree(1) ببینید. این کار کمی هزینه I/O دارد. به طور پیش‌فرض فعال است.

این قابلیت می‌تواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.showSizes مخزن (بولی) پیکربندی شود.

patches

نمای "patches" را فعال و پیکربندی می‌کند، که فهرست کامیت‌ها را در قالب خروجی ایمیل (متن ساده) نمایش می‌دهد؛ همچنین به git-format-patch(1) مراجعه کنید. مقدار آن حداکثر تعداد وصله‌ها در یک مجموعه وصله تولیدشده در نمای "patches" است. فیلد default را روی فهرستی حاوی یک مقدار تکی 0 یا یک فهرست خالی تنظیم کنید تا نمای وصله‌ها غیرفعال شود، یا روی فهرستی حاوی یک عدد منفی تکی تنظیم کنید تا هرگونه محدودیتی برداشته شود. مقدار پیش‌فرض 16 است.

این قابلیت می‌تواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.patches مخزن (عددی) پیکربندی شود.

avatar

پشتیبانی از آواتار (تصویر نمایه). هنگامی که این قابلیت فعال است، نماهایی مانند "shortlog" یا "commit" یک آواتار مرتبط با ایمیل هر کامیت‌کننده و نویسنده نمایش می‌دهند.

ارائه‌دهندگان در حال حاضر در دسترس عبارتند از "gravatar" و "picon". در هر زمان تنها یک ارائه‌دهنده را می‌توان انتخاب کرد (default یک لیست یک‌عضوی است). اگر ارائه‌دهنده ناشناخته‌ای مشخص شود، قابلیت غیرفعال می‌شود. توجه کنید که برخی ارائه‌دهندگان ممکن است نیاز به نصب بسته‌های اضافی پرل داشته باشند؛ برای جزئیات بیشتر به gitweb/INSTALL مراجعه کنید.

این قابلیت می‌تواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.avatar مخزن پیکربندی شود.

همچنین به %avatar_size با اندازه‌های پیکسلی برای آیکون‌ها و آواتارها نگاه کنید ("default" برای خطوط یک‌خطی مانند "log" و "shortlog" استفاده می‌شود، و "double" برای خطوط دوخطی مانند "commit"، "commitdiff" یا "tag"). اگر اندازه‌های فونت یا ارتفاع خطوط پیش‌فرض تغییر کنند (مثلاً با افزودن برگه سبک‌بندی اضافی CSS در @stylesheets)، ممکن است تغییر این مقادیر مناسب باشد.

email-privacy

حذف و پوشاندن نشانی‌های ایمیل از محتوای HTML تولیدشده و غیره. این امر نشانی‌های ایمیل استخراج‌شده از بخش‌های نویسنده/کامیت‌کننده و توضیحات لاگ گیت را مبهم می‌سازد. این قابلیت برای جلوگیری از خزنده‌های وب که نشانی‌ها را برای هرزنامه جمع‌آوری و سوءاستفاده می‌کنند در نظر گرفته شده است. چنین خزنده‌هایی ممکن است robots.txt را رعایت نکنند. توجه داشته باشید که کاربران و ابزارهای کاربر نیز نشانی‌ها را به صورت پوشانده‌شده می‌بینند. اگر گیت‌وب آخرین مرحله در یک گردش کار نباشد، مراحل بعدی ممکن است به دلیل اطلاعات مبهم‌شده‌ای که دریافت می‌کنند دچار نقص عملکرد شوند. به طور پیش‌فرض غیرفعال است.

highlight

پشتیبانی از برجسته‌سازی نحوی در سمت سرور در نمای "blob". این قابلیت نیازمند در دسترس بودن برنامه $highlight_bin است (توضیحات این متغیر را در بخش «متغیرهای پیکربندی» در بالا ببینید)، و بنابراین به طور پیش‌فرض غیرفعال است.

این قابلیت می‌تواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.highlight مخزن (بولی) پیکربندی شود.

remote_heads

نمایش سرهای راه دور (شاخه‌های ردگیری راه دور / remote-tracking) را در فهرست "heads" فعال می‌کند. در بیشتر موارد فهرست شاخه‌های ردگیری راه دور یک جزئیات خصوصی و غیرضروری داخلی است، و بنابراین این قابلیت به طور پیش‌فرض غیرفعال است. دستور git-instaweb(1)، که معمولاً برای مرور مخازن محلی استفاده می‌شود، این قابلیت را فعال کرده و استفاده می‌کند.

این قابلیت می‌تواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.remote_heads مخزن (بولی) پیکربندی شود.

باقی‌مانده قابلیت‌ها را نمی‌توان به ازای هر پروژه بازنویسی کرد.

search

جستجوی متنی را فعال می‌کند، که کامیت‌های منطبق بر نویسنده، کامیت‌کننده یا متن کامیت را با یک رشته داده‌شده فهرست می‌کند؛ توضیحات گزینه‌های --author، --committer و --grep را در صفحه راهنمای git-log(1) ببینید. به طور پیش‌فرض فعال است.

بازنویسی اختصاصی پروژه برای این مورد پشتیبانی نمی‌شود.

forks

اگر این قابلیت فعال باشد، گیت‌وب پروژه‌های موجود در زیرشاخه‌های ریشه پروژه (نام پایه) را به عنوان فورک‌های پروژه‌های موجود در نظر می‌گیرد. برای هر پروژه $projname.git، پروژه‌های موجود در دایرکتوری $projname/ و زیرشاخه‌های آن در فهرست اصلی پروژه‌ها نشان داده نخواهند شد. در عوض، یک علامت '+' در کنار $projname نشان داده می‌شود، که به یک نمای "forks" پیوند دارد که تمام فورک‌ها (تمام پروژه‌ها در زیرشاخه $projname/) را فهرست می‌کند. علاوه بر این، یک نمای "forks" برای یک پروژه از صفحه خلاصه پروژه پیوند داده می‌شود.

اگر فهرست پروژه‌ها از یک فایل خوانده شود ($projects_list به یک فایل اشاره کند)، فورک‌ها تنها در صورتی تشخیص داده می‌شوند که پس از پروژه اصلی در آن فایل فهرست شده باشند.

بازنویسی اختصاصی پروژه پشتیبانی نمی‌شود.

actions

پیوندهای سفارشی را به نوار عملیات تمام صفحات پروژه اضافه می‌کند. این به شما امکان می‌دهد پیوندهایی به اسکریپت‌های شخص ثالث که با گیت‌وب یکپارچه شده‌اند برقرار کنید.

مقدار "default" شامل فهرستی از سه‌تایی‌ها به فرم ‘("<label>", "<link>", "<position>")` است که در آن "position" برچسبی است که پیوند باید بعد از آن درج شود، "link" یک رشته قالبی است که در آن %n به نام پروژه بسط می‌یابد، %f به مسیر پروژه در فایل‌سیستم (یعنی "$projectroot/$project")، %h به هش فعلی (پارامتر 'h’ گیت‌وب) و ‘%b` به پایه هش فعلی (پارامتر 'hb’ گیت‌وب) گسترش می‌یابد؛ و ‘%%` به '%’ بسط می‌یابد.

برای مثال، در زمانی که این صفحه نوشته شده است، سایت میزبانی گیت https://repo.or.cz آن را روی مقدار زیر تنظیم کرده بود تا لاگ گرافیکی (با استفاده از ابزار شخص ثالث git-browser) را فعال کند:

$feature{'actions'}{'default'} =
        [ ('graphiclog', '/git-browser/by-commit.html?r=%n', 'summary')];

این کار پیوندی با عنوان "graphiclog" بعد از پیوند "summary" اضافه می‌کند که به اسکریپت git-browser منتهی شده و r=<project> را به عنوان یک پارامتر پرسمان ارسال می‌کند.

بازنویسی اختصاصی پروژه پشتیبانی نمی‌شود.

timed

نمایش مدت زمان و تعداد دستورات گیت که برای تولید و نمایش هر صفحه صرف شده است را در فوتر صفحه (در پایین صفحه) فعال می‌کند. برای مثال فوتر ممکن است شامل این عبارت باشد: "This page took 6.53325 seconds and 13 Git commands to generate." به طور پیش‌فرض غیرفعال است.

بازنویسی اختصاصی پروژه پشتیبانی نمی‌شود.

javascript-timezone

امکان تغییر یک منطقه زمانی مشترک برای تاریخ‌ها در خروجی گیت‌وب را از طریق جاوااسکریپت فعال و پیکربندی می‌کند. تاریخ‌ها در خروجی گیت‌وب شامل authordate و committerdate در نماهای "commit"، "commitdiff" و "log"، و taggerdate در نمای "tag" هستند. به طور پیش‌فرض فعال است.

مقدار آن فهرستی از سه مقدار است: یک منطقه زمانی پیش‌فرض (برای حالتی که کلاینت منطقه زمانی دیگری را انتخاب نکرده و در کوکی ذخیره نکرده باشد)، نام کوکی که منطقه زمانی انتخاب‌شده در آن ذخیره می‌شود، و یک کلاس CSS برای علامت‌گذاری تاریخ‌ها جهت دستکاری. اگر می‌خواهید این قابلیت را خاموش کنید، "default" را روی یک لیست خالی تنظیم کنید: [].

پرونده‌های پیکربندی معمولی گیت‌وب معمولاً فقط منطقه زمانی آغازین (پیش‌فرض) را تغییر می‌دهند و سایر عناصر را در مقادیر پیش‌فرض خود باقی می‌گذارند:

$feature{'javascript-timezone'}{'default'}[0] = "utc";

پیکربندی نمونه ارائه‌شده در اینجا سازگاری عقبرو و پیشرو را تضمین می‌کند.

مقادیر منطقه زمانی می‌توانند "local" (برای منطقه زمانی محلی که مرورگر استفاده می‌کند)، "utc" (آنچه گیت‌وب هنگام غیرفعال بودن جاوااسکریپت یا این قابلیت استفاده می‌کند)، یا مناطق زمانی عددی به فرم "+/-HHMM" مانند "+0200" باشند.

بازنویسی اختصاصی پروژه پشتیبانی نمی‌شود.

extra-branch-refs

فهرستی از دایرکتوری‌های اضافی در زیر "refs" که قرار است به عنوان ارجاعات شاخه استفاده شوند. برای مثال اگر ساختار gerrit دارید که در آن تمام شاخه‌های زیر refs/heads/ شاخه‌های رسمی و push-after-review هستند و شاخه‌های زیر refs/sandbox/، refs/wip و refs/other شاخه‌های کاربری هستند که مجوزها بسیار گسترده‌ترند، ممکن است بخواهید این متغیر را به این صورت تنظیم کنید:
$feature{'extra-branch-refs'}{'default'} =
        ['sandbox', 'wip', 'other'];

این قابلیت می‌تواند پس از تنظیم $feature{extra-branch-refs}{override} روی درستی (true)، به ازای هر مخزن از طریق متغیر پیکربندی gitweb.extraBranchRefs مخزن، که حاوی فهرستی جداشده با فاصله از ارجاعات است، پیکربندی شود. یک مثال:

[gitweb]
        extraBranchRefs = sandbox wip other

متغیر gitweb.extraBranchRefs در واقع یک متغیر پیکربندی چندمقداری است، بنابراین مثال زیر نیز صحیح است و نتیجه آن با قطعه کد بالا یکسان خواهد بود:

[gitweb]
        extraBranchRefs = sandbox
        extraBranchRefs = wip other

مشخص کردن ارجاعی که آزمون "git check-ref-format" را پاس نکند یک خطا محسوب می‌شود. مقادیر تکراری پالایش می‌شوند.

برای فعال‌سازی blame، جستجوی pickaxe، و پشتیبانی از snapshot (با اجازه ایجاد snapshotهای "tar.gz" و "zip")، در حالی که به پروژه‌های مجزا اجازه داده شود آن‌ها را خاموش کنند، خطوط زیر را در فایل 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;

اگر بازنویسی را برای قابلیت snapshot مجاز کنید، می‌توانید مشخص کنید که کدام قالب‌های snapshot به صورت سراسری غیرفعال شوند. همچنین می‌توانید هر گزینه خط فرمانی که می‌خواهید اضافه کنید (مانند تنظیم سطح فشرده‌سازی). به عنوان مثال، می‌توانید snapshotهای فشرده‌شده Zip را غیرفعال کرده و gzip(1) را طوری تنظیم کنید که با سطح ۶ اجرا شود؛ این کار را با افزودن خطوط زیر به پرونده پیکربندی گیت‌وب خود انجام دهید:

$known_snapshot_formats{'zip'}{'disabled'} = 1;
$known_snapshot_formats{'tgz'}{'compressor'} = ['gzip','-6'];

خطایابی آسان‌تر می‌بود اگر پرونده پیکربندی جایگزین (/etc/gitweb.conf) و متغیر محیطی بازنویسی مکان آن (GITWEB_CONFIG_SYSTEM) نام‌هایی داشتند که نشان‌دهنده نقش «جایگزین» (fallback) آن‌ها می‌بود. نام‌های فعلی برای جلوگیری از شکستن تنظیمات موجود حفظ شده‌اند.

مکان پرونده‌های پیکربندی به ازای هر نمونه و سراسری سیستم را می‌توان با استفاده از متغیرهای محیطی زیر بازنویسی کرد:

GITWEB_CONFIG

مکان پرونده پیکربندی به ازای هر نمونه را تنظیم می‌کند.

GITWEB_CONFIG_SYSTEM

مکان پرونده پیکربندی جایگزین سراسری سیستم را تنظیم می‌کند. این فایل تنها در صورتی خوانده می‌شود که پرونده به ازای هر نمونه وجود نداشته باشد.

GITWEB_CONFIG_COMMON

مکان پرونده پیکربندی مشترک سراسری سیستم را تنظیم می‌کند.

gitweb_config.perl

این نام پیش‌فرض پرونده پیکربندی به ازای هر نمونه است. قالب این فایل در بالا شرح داده شده است.

/etc/gitweb.conf

این نام پیش‌فرض پرونده پیکربندی جایگزین سراسری سیستم است. این فایل تنها در صورتی استفاده می‌شود که متغیر پیکربندی به ازای هر نمونه یافت نشود.

/etc/gitweb-common.conf

این نام پیش‌فرض پرونده پیکربندی مشترک سراسری سیستم است.

gitweb(1), git-instaweb(1)

gitweb/README, gitweb/INSTALL

بخشی از مجموعه git(1)

2026-06-29 Git 2.55.0