| GITWEB.CONF(5) | Git Manual | GITWEB.CONF(5) |
نام (NAME)
gitweb.conf - پرونده پیکربندی گیتوب (رابط وب گیت)
خلاصه دستور (SYNOPSIS)
/etc/gitweb.conf, /etc/gitweb-common.conf, $GITWEBDIR/gitweb_config.perl
توضیحات (DESCRIPTION)
اسکریپت 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) ببینید.
بررسی تفصیلی (DISCUSSION)
گیتوب دادههای پیکربندی را از منابع زیر و به ترتیب زیر میخواند:
مقادیر بهدستآمده در پروندههای پیکربندی بعدی، مقادیر بهدستآمده قبلی در توالی بالا را بازنویسی (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 فعال نشوند، در دسترس نخواهند بود (بخش «پیکربندی قابلیتهای گیتوب» را در زیر نیز ببینید).
متغیرهای پیکربندی (CONFIGURATION VARIABLES)
برخی متغیرهای پیکربندی دارای مقادیر پیشفرضی هستند (که در اسکریپت CGI جاسازی شده است) که هنگام ساخت گیتوب تنظیم شدهاند — اگر چنین باشد، این موضوع در توضیحات آنها ذکر شده است. برای دستورالعملهای مربوط به ساخت و نصب گیتوب به فایل INSTALL گیتوب مراجعه کنید.
مکان مخازن (Location of repositories)
متغیرهای پیکربندی شرح داده شده در زیر نحوه یافتن مخازن گیت توسط گیتوب و چگونگی نمایش و دسترسی به آنها را کنترل میکنند.
همچنین بخشهای "Repositories" و زیربخشهای بعدی را در صفحه راهنمای gitweb(1) ببینید.
$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
این متغیر صرفاً یک بهینهسازی عملکردی است، که در ابتدا برای MacOS X که پیمایش بازگشتی دایرکتوریها در آن کند است طراحی شده بود. گیتوب پیوندهای نمادین را دنبال میکند، اما چرخهها را شناسایی کرده و فایلها و دایرکتوریهای تکراری را نادیده میگیرد.
مقدار پیشفرض این متغیر توسط متغیر پیکربندی زمان ساخت GITWEB_PROJECT_MAXDEPTH تعیین میشود، که پیشفرض آن 2007 است.
$export_ok
$export_auth_hook
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
یافتن فایلها (Finding files)
متغیرهای پیکربندی زیر به گیتوب میگویند که فایلها را در کجا بیابد. مقادیر این متغیرها مسیرهایی روی فایلسیستم هستند.
$GIT
$mimetypes_file
$highlight_bin
نکته: برای اینکه یک فایل برجسته شود، نوع دستور زبان آن باید تشخیص داده شود و آن دستور زبان باید توسط "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';
پیوندها و مقصدهای آنها (Links and their targets)
متغیرهای پیکربندی که در زیر توضیح داده شدهاند برخی از پیوندهای گیتوب را پیکربندی میکنند: مقصد آنها، ظاهر آنها (متن یا تصویر)، و اینکه پیشنیازهای صفحه (برگه سبکبندی، آیکون وبسایت یا فاوآیکون، تصاویر، اسکریپتها) در کجا یافت شوند. معمولاً اینها در مقادیر پیشفرض خود باقی میمانند، به استثنای احتمالی متغیر @stylesheets.
@stylesheets
push @stylesheets, "gitweb-site.css";
در پرونده پیکربندی گیتوب اضافه کنید. مقادیری که مسیرهای نسبی هستند نسبت به URI پایه گیتوب سنجیده میشوند.
این لیست باید حاوی URI برگه سبکبندی استاندارد گیتوب باشد. مقدار پیشفرض URI برگه سبکبندی گیتوب را میتوان در زمان ساخت با استفاده از متغیر makefile به نام GITWEB_CSS تنظیم کرد. مقدار پیشفرض آن static/gitweb.css است (یا static/gitweb.min.css اگر متغیر CSSMIN تعریف شده باشد، یعنی از فشردهساز CSS در طول ساخت استفاده شده باشد).
نکته: یک متغیر پیکربندی قدیمی به نام $stylesheet نیز وجود دارد که در نسخههای قدیمیتر گیتوب استفاده میشد. اگر متغیر $stylesheet تعریف شده باشد، گیتوب تنها از برگه سبکبندی CSS مشخصشده توسط این متغیر استفاده میکند.
$logo
$favicon
$javascript
مقدار پیشفرض آن static/gitweb.js، یا static/gitweb.min.js است اگر متغیر ساخت JSMIN تعریف شده باشد، یعنی اگر در زمان ساخت از فشردهساز جاوااسکریپت استفاده شده باشد. نکته اینکه این فایل واحد از چندین ماژول مجزای جاوااسکریپت تولید شده است.
$home_link
$home_link_str
@extra_breadcrumbs
برای مثال، تنظیمات زیر یک مسیر ناوبری مانند "home / dev / projects / ..." تولید میکند که در آن "projects" پیوند خانه است.
our @extra_breadcrumbs = ( [ 'home' => 'https://www.example.org' ], [ 'dev' => 'https://dev.example.org' ], );
$logo_url, $logo_label
تغییر ظاهر گیتوب (Changing gitweb’s look)
میتوانید نحوه نمایش صفحات تولیدشده توسط گیتوب را با استفاده از متغیرهای شرح داده شده در زیر تنظیم کنید. میتوانید نام سایت را تغییر دهید، هدرها و فوترهای مشترک برای تمام صفحات اضافه کنید، و توضیحاتی درباره این نصب گیتوب در صفحه اصلی آن (که همان صفحه فهرست پروژههاست) بیفزایید، و غیره.
$site_name
میتواند با استفاده از متغیر GITWEB_SITENAME در زمان ساخت تنظیم شود. به طور پیشفرض تنظیم نشده است.
$site_html_head_string
$site_header
$site_footer
$home_text
$projects_list_description_width
$default_projects_order
مقدار پیشفرض "project" است. مقدار ناشناخته به معنای نامرتب است.
تغییر رفتار گیتوب (Changing gitweb’s behavior)
این متغیرهای پیکربندی رفتار داخلی گیتوب را کنترل میکنند.
$default_blob_plain_mimetype
$default_text_plain_charset
$fallback_encoding
@diff_opts
توجه کنید که تشخیص تغییر نام و به ویژه تشخیص کپی میتواند بسیار بار پردازشی (CPU) بالایی داشته باشد. همچنین توجه داشته باشید که ابزارهای غیر گیت ممکن است با وصلههای تولیدشده با گزینههای یادشده مشکل داشته باشند، به خصوص زمانی که شامل کپی فایل ('-C') یا تغییر نام متقاطع ('-B') باشند.
برخی قابلیتها و خطمشیهای اختیاری (Some optional features and policies)
بیشتر قابلیتها از طریق هش %feature پیکربندی میشوند؛ با این حال برخی قابلیتهای اضافه گیتوب را میتوان با استفاده از متغیرهای شرح داده شده در زیر روشن و پیکربندی کرد. این لیست در کنار متغیرهای پیکربندی که ظاهر گیتوب را کنترل میکنند، شامل متغیرهایی است که جنبههای مدیریتی گیتوب را پیکربندی مینمایند (مثلاً جلوگیری از حملات تزریق اسکریپت یا XSS؛ که البته به عنوان یک اثر جانبی بر ظاهر صفحات "summary" یا محدودسازی بار اثر میگذارد).
@git_base_url_list
توجه داشته باشید که پیکربندی به ازای هر مخزن میتواند در فایل $GIT_DIR/cloneurl یا به عنوان مقادیر متغیر چندمقداری gitweb.url در پیکربندی پروژه تنظیم شود. پیکربندی به ازای هر مخزن بر مقدار ساختهشده از اعضای @git_base_url_list و نام پروژه اولویت دارد.
میتوانید یک مقدار تکی (یک مدخل در این لیست) را در زمان ساخت با تنظیم متغیر پیکربندی زمان ساخت GITWEB_BASE_URL مشخص کنید. به طور پیشفرض روی () یعنی یک لیست خالی تنظیم شده است. این بدان معنی است که گیتوب تلاشی برای ساخت URL پروژه (جهت واکشی) از روی نام پروژه نخواهد کرد.
$projects_list_group_categories
$project_list_default_category
$prevent_xss
$maxload
مقدار $maxload را روی مقدار تعریفنشده (undef) تنظیم کنید تا این قابلیت خاموش شود. مقدار پیشفرض 300 است.
$omit_age_column
$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) استفاده شود.
سایر متغیرها (Other variables)
معمولاً نیازی به تغییر (تنظیم) هیچیک از متغیرهای پیکربندی شرح داده شده در زیر نخواهید داشت؛ آنها باید به طور خودکار توسط گیتوب روی مقادیر صحیح تنظیم شوند.
$version
our $version .= " with caching";
اگر نسخه تغییریافتهای از گیتوب را با پشتیبانی از ذخیرهسازی موقت (caching) اجرا میکنید. این متغیر صرفاً اطلاعاتی است، و مثلاً در متاتگ "generator" در هدر HTML استفاده میشود.
$my_url, $my_uri
$base_url
پیکربندی قابلیتهای گیتوب (CONFIGURING GITWEB FEATURES)
بسیاری از قابلیتهای گیتوب را میتوان با استفاده از هش %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
معمولاً یک "<feature>" از طریق متغیر پیکربندی gitweb.<feature> در پرونده پیکربندی گیت به ازای هر مخزن قابل تنظیم است.
توجه کنید که هیچ قابلیتی به طور پیشفرض قابل بازنویسی نیست.
sub
هرگز نیازی به تغییر آن در پرونده پیکربندی گیتوب نخواهید داشت.
قابلیتها در %feature (Features in %feature)
قابلیتهای گیتوب که از طریق هش %feature قابل پیکربندی هستند در زیر فهرست شدهاند. این فهرست باید جامع باشد، اما در نهایت منبع موثق و کامل کد منبع gitweb.cgi است، که در آن قابلیتها در کامنتها توضیح داده شدهاند.
blame
این قابلیت میتواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.blame مخزن (بولی) پیکربندی شود.
snapshot
مقدار 'default' فهرستی از نامهای قالبهای snapshot است، که در هش %known_snapshot_formats تعریف شدهاند، که میخواهید ارائه دهید. قالبهای پشتیبانیشده شامل "tgz"، "tbz2"، "txz" (آرشیو tar فشردهشده با gzip/bzip2/xz) و "zip" هستند؛ لطفاً برای فهرست قطعی به سورسهای گیتوب مراجعه کنید. به طور پیشفرض فقط "tgz" ارائه میشود.
این قابلیت میتواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.snapshot مخزن، که حاوی فهرستی جداشده با کاما از قالبها یا "none" برای غیرفعال کردن snapshot است، پیکربندی شود. مقادیر ناشناخته نادیده گرفته میشوند.
grep
این قابلیت میتواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.grep مخزن (بولی) پیکربندی شود.
pickaxe
جستجوی pickaxe در git-log(1) شرح داده شده است (توضیح گزینه -S<string>، که برای جزئیات بیشتر به بخش pickaxe در gitdiffcore(7) ارجاع میدهد).
این قابلیت میتواند به ازای هر مخزن با تنظیم متغیر پیکربندی gitweb.pickaxe مخزن (بولی) پیکربندی شود.
show-sizes
این قابلیت میتواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.showSizes مخزن (بولی) پیکربندی شود.
patches
این قابلیت میتواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.patches مخزن (عددی) پیکربندی شود.
avatar
ارائهدهندگان در حال حاضر در دسترس عبارتند از "gravatar" و "picon". در هر زمان تنها یک ارائهدهنده را میتوان انتخاب کرد (default یک لیست یکعضوی است). اگر ارائهدهنده ناشناختهای مشخص شود، قابلیت غیرفعال میشود. توجه کنید که برخی ارائهدهندگان ممکن است نیاز به نصب بستههای اضافی پرل داشته باشند؛ برای جزئیات بیشتر به gitweb/INSTALL مراجعه کنید.
این قابلیت میتواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.avatar مخزن پیکربندی شود.
همچنین به %avatar_size با اندازههای پیکسلی برای آیکونها و آواتارها نگاه کنید ("default" برای خطوط یکخطی مانند "log" و "shortlog" استفاده میشود، و "double" برای خطوط دوخطی مانند "commit"، "commitdiff" یا "tag"). اگر اندازههای فونت یا ارتفاع خطوط پیشفرض تغییر کنند (مثلاً با افزودن برگه سبکبندی اضافی CSS در @stylesheets)، ممکن است تغییر این مقادیر مناسب باشد.
email-privacy
highlight
این قابلیت میتواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.highlight مخزن (بولی) پیکربندی شود.
remote_heads
این قابلیت میتواند به ازای هر مخزن از طریق متغیر پیکربندی gitweb.remote_heads مخزن (بولی) پیکربندی شود.
باقیمانده قابلیتها را نمیتوان به ازای هر پروژه بازنویسی کرد.
search
بازنویسی اختصاصی پروژه برای این مورد پشتیبانی نمیشود.
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
بازنویسی اختصاصی پروژه پشتیبانی نمیشود.
javascript-timezone
مقدار آن فهرستی از سه مقدار است: یک منطقه زمانی پیشفرض (برای حالتی که کلاینت منطقه زمانی دیگری را انتخاب نکرده و در کوکی ذخیره نکرده باشد)، نام کوکی که منطقه زمانی انتخابشده در آن ذخیره میشود، و یک کلاس CSS برای علامتگذاری تاریخها جهت دستکاری. اگر میخواهید این قابلیت را خاموش کنید، "default" را روی یک لیست خالی تنظیم کنید: [].
پروندههای پیکربندی معمولی گیتوب معمولاً فقط منطقه زمانی آغازین (پیشفرض) را تغییر میدهند و سایر عناصر را در مقادیر پیشفرض خود باقی میگذارند:
$feature{'javascript-timezone'}{'default'}[0] = "utc";
پیکربندی نمونه ارائهشده در اینجا سازگاری عقبرو و پیشرو را تضمین میکند.
مقادیر منطقه زمانی میتوانند "local" (برای منطقه زمانی محلی که مرورگر استفاده میکند)، "utc" (آنچه گیتوب هنگام غیرفعال بودن جاوااسکریپت یا این قابلیت استفاده میکند)، یا مناطق زمانی عددی به فرم "+/-HHMM" مانند "+0200" باشند.
بازنویسی اختصاصی پروژه پشتیبانی نمیشود.
extra-branch-refs
$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" را پاس نکند یک خطا محسوب میشود. مقادیر تکراری پالایش میشوند.
مثالها (EXAMPLES)
برای فعالسازی 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'];
اشکالات (BUGS)
خطایابی آسانتر میبود اگر پرونده پیکربندی جایگزین (/etc/gitweb.conf) و متغیر محیطی بازنویسی مکان آن (GITWEB_CONFIG_SYSTEM) نامهایی داشتند که نشاندهنده نقش «جایگزین» (fallback) آنها میبود. نامهای فعلی برای جلوگیری از شکستن تنظیمات موجود حفظ شدهاند.
محیط (ENVIRONMENT)
مکان پروندههای پیکربندی به ازای هر نمونه و سراسری سیستم را میتوان با استفاده از متغیرهای محیطی زیر بازنویسی کرد:
GITWEB_CONFIG
GITWEB_CONFIG_SYSTEM
GITWEB_CONFIG_COMMON
فایلها (FILES)
gitweb_config.perl
/etc/gitweb.conf
/etc/gitweb-common.conf
همچنین ببینید (SEE ALSO)
gitweb/README, gitweb/INSTALL
GIT
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |