Ini adalah perintah gitweb yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, Windows online emulator atau MAC OS online emulator
PROGRAM:
NAMA
gitweb - Antarmuka web Git (frontend web ke repositori Git)
RINGKASAN
Untuk memulai dengan gitweb, jalankan git-instaweb(1) dari repositori Git. Ini akan
konfigurasikan dan mulai server web Anda, dan jalankan browser web yang menunjuk ke gitweb.
DESKRIPSI
Gitweb menyediakan antarmuka web ke repositori Git. Fitur-fiturnya meliputi:
· Melihat beberapa repositori Git dengan root yang sama.
· Menjelajahi setiap revisi repositori.
· Melihat isi file dalam repositori pada setiap revisi.
· Melihat log revisi cabang, riwayat file dan direktori, lihat apa itu
berubah kapan, oleh siapa.
· Melihat detail kesalahan/anotasi dari file apa pun (jika diaktifkan).
· Menghasilkan RSS dan Atom feed dari commit, untuk cabang manapun. Umpannya adalah
dapat ditemukan secara otomatis di browser web modern.
· Melihat semua yang diubah dalam revisi, dan melangkah melalui revisi satu per satu
waktu, melihat sejarah repositori.
· Menemukan komit yang pesan komit cocok dengan istilah pencarian yang diberikan.
Lihat http://git.kernel.org/?p=git/git.git;a=pohon;f=gitweb or
http://repo.or.cz/w/git.git/tree/HEAD:/gitweb/ untuk kode sumber gitweb, dijelajahi menggunakan
gitweb itu sendiri.
KONFIGURASI
Berbagai aspek perilaku gitweb dapat dikontrol melalui file konfigurasi
gitweb_config.perl or /etc/gitweb.conf. Lihat gitweb.conf(5) untuk rincian.
Repositori
Gitweb dapat menampilkan informasi dari satu atau lebih repositori Git. Repositori ini harus
semuanya ada di sistem file lokal, dan harus berbagi root repositori yang sama, yaitu semuanya di bawah a
repositori orang tua tunggal (tetapi lihat juga bagian "Pengaturan server web lanjutan", "Server web
konfigurasi dengan subbagian "root beberapa proyek").
kami $projectroot = '/path/to/parent/directory';
Nilai default untuk $projectroot adalah /pub/git. Anda dapat mengubahnya selama membangun gitweb
melalui GITWEB_PROJECTROOT membangun variabel konfigurasi.
Secara default semua repositori Git di bawah $projectroot terlihat dan tersedia untuk gitweb.
Daftar proyek dihasilkan secara default dengan memindai direktori $projectroot untuk
Repositori Git (untuk database objek lebih tepatnya; gitweb tidak tertarik pada a
area kerja, dan paling cocok untuk menampilkan repositori "telanjang").
Nama repositori di gitweb adalah jalur ke $GIT_DIR (database objeknya)
relatif terhadap $projectroot. Oleh karena itu repositori $repo dapat ditemukan di
"$projectroot/$repo".
Proyek daftar fillet format
Alih-alih meminta gitweb menemukan repositori dengan memindai sistem file mulai dari
$projectroot, Anda dapat memberikan daftar proyek yang terlihat sebelumnya dengan menyetel
$projects_list untuk menunjuk ke file teks biasa dengan daftar proyek (dengan beberapa tambahan
informasi).
File ini menggunakan format berikut:
· Satu record (untuk proyek/repositori) per baris; tidak mendukung kelanjutan garis
(baris baru melarikan diri).
· Spasi awal dan akhir diabaikan.
· Bidang yang dipisahkan spasi; setiap run of whitespace dapat digunakan sebagai pemisah bidang
(aturan untuk "split(" ", $line)" Perl).
· Bidang menggunakan pengkodean URI yang dimodifikasi, yang didefinisikan dalam RFC 3986, bagian 2.1 (Pengkodean Persen),
atau lebih tepatnya "Pengkodean string kueri" (lihat
http://en.wikipedia.org/wiki/Query_string#enkode_URL), perbedaannya adalah bahwa SP
(" ") dapat dikodekan sebagai "+" (dan oleh karena itu "+" harus juga dikodekan persen).
Karakter yang dicadangkan adalah: "%" (digunakan untuk encoding), "+" (dapat digunakan untuk meng-encode SPACE),
semua karakter spasi putih seperti yang didefinisikan dalam Perl, termasuk SP, TAB dan LF, (digunakan untuk
bidang terpisah dalam catatan).
· Bidang yang diakui saat ini adalah:
path ke repositori GIT_DIR, relatif terhadap $projectroot
ditampilkan sebagai pemilik repositori, sebaiknya nama lengkap, atau email, atau keduanya
Anda dapat membuat file indeks daftar proyek menggunakan aksi project_index (the TXT link
pada halaman daftar proyek) langsung dari gitweb; lihat juga "Membuat daftar proyek menggunakan
gitweb" di bawah.
Contoh isi:
foo.git Joe+R+Hacker+joe@contoh.com>
foo/bar.git O+W+Ner+pemilik@contoh.org>
Secara default, file ini hanya mengontrol proyek mana yang terlihat pada halaman daftar proyek (catatan
bahwa entri yang tidak mengarah ke repositori Git yang dikenali dengan benar tidak akan ditampilkan
oleh gitweb). Bahkan jika sebuah proyek tidak terlihat di halaman daftar proyek, Anda dapat melihatnya
namun dengan membuat URL gitweb secara manual. Dengan mengatur konfigurasi $strict_export
variabel (lihat gitweb.conf(5)) ke nilai sebenarnya Anda hanya dapat mengizinkan melihat repositori
juga ditampilkan di halaman ikhtisar (yaitu hanya proyek yang secara eksplisit tercantum dalam daftar proyek
file akan dapat diakses).
Membangkitkan memprojeksikan daftar menggunakan gitweb
Kami berasumsi bahwa GITWEB_CONFIG memiliki nilai Makefile default, yaitu gitweb_config.perl.
Masukkan yang berikut ini gitweb_make_index.perl File:
read_config_file("gitweb_config.perl");
$projects_list = $projectroot;
Kemudian buat skrip berikut untuk mendapatkan daftar proyek dalam format yang sesuai untuk
GITWEB_LIST membangun variabel konfigurasi (atau variabel $projects_list dalam konfigurasi gitweb):
#!/ Bin / sh
ekspor GITWEB_CONFIG="gitweb_make_index.perl"
ekspor GATEWAY_INTERFACE="CGI/1.1"
ekspor HTTP_ACCEPT="*/*"
ekspor REQUEST_METHOD="GET"
ekspor QUERY_STRING="a=project_index"
perl -- /var/www/cgi-bin/gitweb.cgi
Jalankan skrip ini dan simpan hasilnya ke file. File ini kemudian dapat digunakan sebagai proyek
list file, yang berarti Anda dapat mengatur $projects_list ke nama filenya.
Mengontrol mengakses untuk pergi repositori
Secara default semua repositori Git di bawah $projectroot terlihat dan tersedia untuk gitweb.
Namun Anda dapat mengonfigurasi bagaimana gitweb mengontrol akses ke repositori.
· Seperti yang dijelaskan di bagian "Format file daftar proyek", Anda dapat mengontrol proyek mana
adalah terlihat dengan secara selektif memasukkan repositori dalam file daftar proyek, dan pengaturan
$projects_list variabel konfigurasi gitweb untuk menunjuk ke sana. Dengan set $strict_export,
file daftar proyek dapat digunakan untuk mengontrol repositori mana yang tersedia juga.
· Anda dapat mengonfigurasi gitweb untuk hanya mencantumkan dan mengizinkan tampilan yang diekspor secara eksplisit
repositori, melalui variabel $export_ok dalam file konfigurasi gitweb; Lihat gitweb.conf(5)
halaman manual. Jika bernilai true, gitweb menampilkan repositori hanya jika file ini diberi nama oleh
$export_ok ada di database objeknya (jika direktori memiliki file ajaib bernama
$ekspor_ok).
Misalnya git-daemon(1) secara default (kecuali opsi --export-all digunakan) memungkinkan
menarik hanya untuk repositori yang memiliki git-daemon-ekspor-ok mengajukan. Menambahkan
kami $export_ok = "git-daemon-export-ok";
membuat gitweb tampil dan hanya mengizinkan akses ke repositori yang dapat diambil dari
melalui git:// protokol.
· Akhirnya, dimungkinkan untuk menentukan subrutin perl arbitrer yang akan dipanggil
untuk setiap repositori untuk menentukan apakah dapat diekspor. Subrutin menerima
jalur absolut ke proyek (repositori) sebagai satu-satunya parameternya (mis
"$projectroot/$project").
Misalnya, jika Anda menggunakan mod_perl untuk menjalankan skrip, dan memiliki protokol HTTP bodoh
otentikasi dikonfigurasi untuk repositori Anda, Anda dapat menggunakan kait berikut untuk
izinkan akses hanya jika pengguna berwenang untuk membaca file:
$ekspor_auth_hook = sub {
gunakan Apache2::SubRequest();
gunakan Apache2::Const -compile => qw(HTTP_OK);
$path saya = "$_[0]/HEAD";
my $r = Apache2::RequestUtil->request;
$sub saya = $r->lookup_file($path);
kembalikan $sub->nama file eq $path
&& $sub->status == Apache2::Const::HTTP_OK;
};
Per-repositori gitweb konfigurasi
Anda dapat mengonfigurasi repositori individual yang ditampilkan di gitweb dengan membuat file di GIT_DIR
repositori Git, atau dengan mengatur beberapa variabel konfigurasi repo (dalam GIT_DIR/config, Lihat
git-config(1)).
Anda dapat menggunakan file-file berikut dalam repositori:
README.html
File html (fragmen HTML) yang disertakan pada halaman "ringkasan" proyek gitweb
dalam elemen blok. Anda dapat menggunakannya untuk deskripsi proyek yang lebih panjang, untuk
memberikan tautan (misalnya ke beranda proyek), dll. Ini hanya dikenali jika XSS
pencegahan tidak aktif ($prevent_xss salah, lihat gitweb.conf(5)); cara untuk memasukkan a
README dengan aman saat pencegahan XSS aktif dapat dilakukan di masa mendatang.
deskripsi (atau gitweb.description)
Pendek (disingkat menjadi $projects_list_description_width di halaman daftar proyek, yang
adalah 25 karakter secara default; Lihat gitweb.conf(5)) deskripsi satu baris dari sebuah proyek
(dari repositori). File teks biasa; HTML akan lolos. Secara default disetel ke
Repositori tanpa nama; edit file ini untuk menamainya gitweb.
dari template selama pembuatan repositori, biasanya dipasang di
/usr/share/git-core/template/. Anda dapat menggunakan konfigurasi repo gitweb.description
variabel, tetapi file lebih diutamakan.
kategori (atau gitweb.category)
Kategori baris tunggal dari sebuah proyek, digunakan untuk mengelompokkan proyek jika
$projects_list_group_categories diaktifkan. Secara default (file dan konfigurasi
variabel tidak ada), proyek yang tidak dikategorikan dimasukkan ke dalam $project_list_default_category
kategori. Anda dapat menggunakan variabel konfigurasi repo gitweb.category, tetapi file
diutamakan.
Variabel konfigurasi $projects_list_group_categories dan
$project_list_default_category dijelaskan dalam gitweb.conf(5)
cloneurl (atau gitweb.url bernilai ganda)
File dengan URL repositori (digunakan untuk mengkloning dan mengambil), satu per baris. Ditampilkan di
halaman ringkasan proyek. Anda dapat menggunakan konfigurasi repositori gitweb.url bernilai ganda
variabel untuk itu, tetapi file lebih diutamakan.
Ini adalah peningkatan per-repositori / versi @git_base_url_list berbasis awalan global
variabel konfigurasi gitweb (lihat gitweb.conf(5)).
gitweb.pemilik
Anda dapat menggunakan variabel konfigurasi repositori gitweb.owner untuk mengatur repositori
pemilik. Hal ini ditampilkan dalam daftar proyek dan halaman ringkasan.
Jika tidak disetel, pemilik direktori sistem file digunakan (melalui bidang GECOS, yaitu nama asli
lapangan dari dapatkanpwuid(3)) jika $projects_list tidak disetel (gitweb memindai $projectroot untuk
repositori); jika $projects_list menunjuk ke file dengan daftar repositori, maka
pemilik proyek default ke nilai dari file ini untuk repositori yang diberikan.
berbagai variabel konfigurasi gitweb.* (dalam konfigurasi)
Baca deskripsi %fitur hash untuk daftar detail, dan deskripsi. Lihat juga
Bagian "Mengonfigurasi fitur gitweb" di gitweb.conf(5)
TINDAKAN, DAN URL
Gitweb dapat menggunakan URL berbasis path_info (komponen), atau dapat meneruskan semua informasi yang diperlukan
melalui parameter kueri. URL gitweb khas dipecah menjadi lima komponen:
.../gitweb.cgi/ / / :/ ?
repo
Repositori tempat tindakan akan dilakukan.
Semua tindakan kecuali yang mencantumkan semua proyek yang tersedia, dalam bentuk apa pun,
memerlukan parameter ini.
tindakan
Tindakan yang akan dijalankan. Default untuk daftar_proyek jika repo tidak disetel, dan untuk
ringkasan jika tidak.
revisi
Revisi ditampilkan. Default ke KEPALA.
path
Jalan di dalam bahwa tindakan tersebut dilakukan, untuk tindakan tersebut
yang membutuhkannya.
argumen
Argumen apa pun yang mengontrol perilaku tindakan.
Beberapa tindakan memerlukan atau mengizinkan untuk menentukan dua revisi, dan terkadang bahkan dua nama path.
Dalam bentuk paling umum seperti URL gitweb berbasis path_info (komponen) terlihat seperti ini:
.../gitweb.cgi/ / / :/ .. :/ ?
Setiap tindakan diimplementasikan sebagai subrutin, dan harus ada dalam hash %aksi. Beberapa
tindakan dinonaktifkan secara default, dan harus diaktifkan melalui mekanisme fitur. Sebagai contoh
untuk mengaktifkan menyalahkan lihat tambahkan yang berikut ini ke file konfigurasi gitweb:
$feature{'blame'}{'default'} = [1];
tindakan:
Tindakan standar adalah:
daftar_proyek
Mencantumkan repositori Git yang tersedia. Ini adalah perintah default jika tidak ada repositori
ditentukan dalam URL.
ringkasan
Menampilkan ringkasan tentang repositori yang diberikan. Ini adalah perintah default jika tidak ada tindakan
ditentukan dalam URL, dan hanya repositori yang ditentukan.
kepala, remote
Daftar semua cabang lokal atau semua pelacakan jarak jauh di repositori yang diberikan.
Yang terakhir ini tidak tersedia secara default, kecuali dikonfigurasi.
tag
Daftar semua tag (ringan dan beranotasi) di repositori yang diberikan.
gumpalan, pohon
Menampilkan file dan direktori di jalur repositori yang diberikan, pada revisi yang diberikan. Ini adalah
perintah default jika tidak ada tindakan yang ditentukan dalam URL, dan jalur diberikan.
gumpalan_plain
Mengembalikan data mentah untuk file dalam repositori yang diberikan, pada jalur dan revisi yang diberikan.
Tautan ke tindakan ini ditandai mentah.
gumpalandiff
Menunjukkan perbedaan antara dua revisi dari file yang sama.
menyalahkan, menyalahkan_tambahan
Menampilkan informasi kesalahan (juga disebut anotasi) untuk sebuah file. Pada basis per baris
itu menunjukkan revisi di mana baris itu terakhir diubah dan pengguna yang melakukan
perubahan. Versi inkremental (yang jika dikonfigurasi akan digunakan secara otomatis ketika
JavaScript diaktifkan) menggunakan Ajax untuk secara bertahap menambahkan info kesalahan ke konten
file yang diberikan.
Tindakan ini dinonaktifkan secara default karena alasan kinerja.
komit, komit
Menampilkan informasi tentang komit tertentu dalam repositori. NS melakukan lihat acara
informasi tentang komit secara lebih rinci, the komitmen tindakan menunjukkan perubahan untuk
diberikan komit.
tambalan
Mengembalikan komit dalam format surat teks biasa, cocok untuk melamar dengan git-am(1).
label
Menampilkan tag beranotasi tertentu (objek tag).
log, log pendek
Menampilkan informasi log (melakukan pesan atau hanya melakukan subjek) untuk cabang tertentu
(dimulai dari revisi yang diberikan).
log pendek tampilan lebih kompak; itu menunjukkan satu komit per baris.
sejarah
Menampilkan riwayat file atau direktori di jalur repositori yang diberikan, mulai dari yang diberikan
revisi (default ke HEAD, yaitu cabang default).
Pandangan ini mirip dengan log pendek melihat.
rs, atom
Menghasilkan umpan RSS (atau Atom) dari perubahan ke repositori.
SERVER WEB KONFIGURASI
Bagian ini menjelaskan cara mengonfigurasi beberapa server web umum untuk menjalankan gitweb. Dalam semua kasus,
/path/to/gitweb dalam contoh adalah direktori tempat Anda menjalankan gitweb yang diinstal, dan berisi
gitweb_config.perl.
Jika Anda telah mengonfigurasi server web yang tidak terdaftar di sini untuk gitweb, harap kirimkan:
instruksi sehingga mereka dapat dimasukkan dalam rilis mendatang.
Apache as CGI
Apache harus dikonfigurasi untuk mendukung skrip CGI di direktori tempat gitweb berada
diinstal. Mari kita asumsikan bahwa itu adalah /var/www/cgi-bin direktori.
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
Indeks Pilihan IkutiSymlinks ExecCGI
Tidak ada AllowOverride
Pesanan memungkinkan, menolak
Izinkan dari semua
Dengan konfigurasi itu, path lengkap untuk menelusuri repositori adalah:
http://server/cgi-bin/gitweb.cgi
Apache dengan mod_perl, melalui ModPerl::Registri
Anda dapat menggunakan mod_perl dengan gitweb. Anda harus menginstal Apache::Registry (untuk mod_perl 1.x) atau
ModPerl::Registry (untuk mod_perl 2.x) untuk mengaktifkan dukungan ini.
Dengan asumsi bahwa gitweb diinstal ke /var/www/perl, konfigurasi Apache berikut
(untuk mod_perl 2.x) cocok.
Alias /perl "/var/www/perl"
SetHandler perl-skrip
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeader
Indeks Pilihan IkutiSymlinks +ExecCGI
Tidak ada AllowOverride
Pesanan memungkinkan, menolak
Izinkan dari semua
Dengan konfigurasi itu, path lengkap untuk menelusuri repositori adalah:
http://server/perl/gitweb.cgi
Apache dengan CGI cepat
Gitweb bekerja dengan Apache dan FastCGI. Pertama, Anda perlu mengganti nama, menyalin, atau symlink gitweb.cgi
ke gitweb.fcgi. Mari kita asumsikan bahwa gitweb diinstal di /usr/berbagi/gitweb direktori. Itu
konfigurasi Apache berikut ini cocok (TIDAK DIUJI!)
Server FastCgi /usr/share/gitweb/gitweb.cgi
ScriptAlias /gitweb /usr/share/gitweb/gitweb.cgi
Alias /gitweb/statis /usr/share/gitweb/statis
<Direktori /usr/share/gitweb/statis>
Pengendali default SetHandler
Dengan konfigurasi itu, path lengkap untuk menelusuri repositori adalah:
http://server/gitweb
ADVANCED WEB SERVER SETUP
Semua contoh tersebut menggunakan penulisan ulang permintaan, dan membutuhkan mod_rewrite (atau yang setara; contoh
di bawah ini ditulis untuk Apache).
Tunggal URL untuk gitweb dan untuk mengambil
Jika Anda ingin memiliki satu URL untuk repositori gitweb dan http:// Anda, Anda dapat
konfigurasikan Apache seperti ini:
Nama Server git.example.org
DocumentRoot /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf
# nyalakan mod rewrite
RewriteEngine on
# jadikan halaman depan sebagai penulisan ulang internal ke skrip gitweb
Aturan Penulisan Ulang ^/$ /cgi-bin/gitweb.cgi
# buat akses untuk "klien bodoh" berfungsi
Aturan Penulisan Ulang ^/(.*\.git/(?!/?(HEAD|info|objek|refs)).*)?$
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]
Konfigurasi di atas mengharapkan repositori publik Anda untuk hidup di bawah /pub/git dan akan
melayani mereka sebagai http://git.domain.org/dir-under-pub-git, baik sebagai URL Git yang dapat dikloning dan sebagai
antarmuka gitweb yang dapat dijelajahi. Jika Anda kemudian memulai git-daemon(1) dengan
--base-path=/pub/git --export-all maka Anda bahkan dapat menggunakan git:// URL dengan persis
jalan yang sama.
Mengatur variabel lingkungan GITWEB_CONFIG akan memberi tahu gitweb untuk menggunakan file bernama
(yaitu dalam contoh ini /etc/gitweb.conf) sebagai konfigurasi untuk gitweb. Anda tidak benar-benar
membutuhkannya dalam contoh di atas; diperlukan hanya jika file konfigurasi Anda berbeda
tempat dari built-in (selama kompilasi gitweb) gitweb_config.perl or /etc/gitweb.conf. Lihat
gitweb.conf(5) untuk rincian, terutama informasi tentang aturan prioritas.
Jika Anda menggunakan aturan penulisan ulang dari contoh Anda mungkin juga membutuhkan sesuatu seperti
berikut di file konfigurasi gitweb Anda (/etc/gitweb.conf contoh berikut):
@stylesheets = ("/some/absolute/path/gitweb.css");
$saya_uri = "/";
$home_link = "/";
$per_request_config = 1;
Saat ini meskipun gitweb harus membuat tag dasar HTML bila diperlukan (untuk mengatur URI dasar untuk
tautan relatif), jadi itu akan bekerja secara otomatis.
web Server konfigurasi dengan beberapa proyek' akar
Jika Anda ingin menggunakan gitweb dengan beberapa root proyek, Anda dapat mengedit host virtual Apache Anda
dan file konfigurasi gitweb dengan cara berikut.
Konfigurasi virtual host (dalam file konfigurasi Apache) akan terlihat seperti ini:
Nama Server git.example.org
DocumentRoot /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf
# nyalakan mod rewrite
RewriteEngine on
# jadikan halaman depan sebagai penulisan ulang internal ke skrip gitweb
Aturan Penulisan Ulang ^/$ /cgi-bin/gitweb.cgi [QSA,L,PT]
# cari folder public_git di rumah pengguna unix
# http://git.example.org/~ /
Aturan Penulisan Ulang ^/\~([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi
[QSA,E=GITWEB_PROJECTROOT:/rumah/$1/public_git/,L,PT]
# http://git.example.org/+ /
#Aturan Penulisan Ulang ^/\+([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi
[QSA,E=GITWEB_PROJECTROOT:/rumah/$1/public_git/,L,PT]
# http://git.example.org/user//
#RewriteRule ^/pengguna/([^\/]+)/(gitweb.cgi)?$ /cgi-bin/gitweb.cgi
[QSA,E=GITWEB_PROJECTROOT:/rumah/$1/public_git/,L,PT]
# daftar root proyek yang ditentukan
Aturan Penulisan Ulang ^/scm(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi
[QSA,E=GITWEB_PROJECTROOT:/pub/scm/,L,PT]
Aturan Tulis Ulang ^/ var(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi
[QSA,E=GITWEB_PROJECTROOT:/var/git/,L,PT]
# buat akses untuk "klien bodoh" berfungsi
Aturan Penulisan Ulang ^/(.*\.git/(?!/?(HEAD|info|objek|refs)).*)?$
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]
Di sini root proyek yang sebenarnya diteruskan ke gitweb melalui variabel lingkungan GITWEB_PROJECT_ROOT
dari server web, jadi Anda perlu meletakkan baris berikut di file konfigurasi gitweb
(/etc/gitweb.conf dalam contoh di atas):
$projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/pub/git";
Note bahwa ini perlu disetel untuk setiap permintaan, jadi $per_request_config harus
false, atau kode di atas harus dimasukkan ke dalam kode yang direferensikan oleh $per_request_config;
Konfigurasi ini memungkinkan dua hal. Pertama, setiap pengguna unix ( ) dari server akan
dapat menelusuri repositori gitweb Git yang ditemukan di ~/publik_git/ pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka.
url berikut:
http://git.example.org/~ /
Jika Anda tidak ingin fitur ini di server Anda, hapus saja aturan penulisan ulang kedua.
Jika Anda sudah menggunakan 'mod_userdir` di host virtual Anda atau Anda tidak ingin menggunakan '~' sebagai
karakter pertama, cukup beri komentar atau hapus aturan penulisan ulang kedua, dan batalkan komentar salah satu dari
berikut sesuai dengan yang anda inginkan.
Kedua, repositori ditemukan di /pub/scm/ dan /var/git/ akan dapat diakses melalui
http://git.example.org/scm/ dan http://git.example.org/var/. Anda dapat menambahkan sebanyak mungkin proyek
root seperti yang Anda inginkan dengan menambahkan aturan penulisan ulang seperti yang ketiga dan keempat.
PATH_INFO pemakaian
Jika Anda mengaktifkan penggunaan PATH_INFO di gitweb dengan meletakkan
$feature{'pathinfo'}{'default'} = [1];
di file konfigurasi gitweb Anda, dimungkinkan untuk mengatur server Anda sehingga
mengkonsumsi dan menghasilkan URL dalam bentuk
http://git.example.com/project.git/shortlog/sometag
yaitu tanpa gitweb.cgi bagian, dengan menggunakan konfigurasi seperti berikut ini. Ini
konfigurasi mengasumsikan bahwa /var/www/gitweb adalah DocumentRoot dari server web Anda, berisi
skrip gitweb.cgi dan file statis pelengkap (stylesheet, favicon, JavaScript):
ServerAlias git.example.com
DocumentRoot /var/www/gitweb
Opsi ExecCGI
AddHandler cgi-skrip cgi
Indeks Direktori gitweb.cgi
RewriteEngine On
RewriteCond% {REQUEST_FILENAME}-f!
RewriteCond% {} REQUEST_FILENAME!-D
Aturan Penulisan Ulang ^.* /gitweb.cgi/$0 [L,PT]
Aturan penulisan ulang menjamin bahwa file statis yang ada akan disajikan dengan benar, sedangkan
URL lain apa pun akan diteruskan ke gitweb sebagai parameter PATH_INFO.
Melihat bahwa dalam hal ini Anda tidak memerlukan pengaturan khusus untuk @stylesheets, $my_uri dan
$home_link, tetapi Anda kehilangan akses "klien bodoh" ke direktori .git proyek Anda (dijelaskan dalam
bagian "URL tunggal untuk gitweb dan untuk mengambil"). Solusi yang mungkin untuk yang terakhir adalah
berikut ini: di direktori root proyek Anda (mis /pub/git) memiliki proyek bernama tanpa a
ekstensi .git (mis /pub/git/proyek alih-alih /pub/git/proyek.git) dan konfigurasikan
Apache sebagai berikut:
ServerAlias git.example.com
DocumentRoot /var/www/gitweb
AliasMatch ^(/.*?)(\.git)(/.*)?$ /pub/git$1$3
Opsi ExecCGI
AddHandler cgi-skrip cgi
Indeks Direktori gitweb.cgi
RewriteEngine On
RewriteCond% {REQUEST_FILENAME}-f!
RewriteCond% {} REQUEST_FILENAME!-D
Aturan Penulisan Ulang ^.* /gitweb.cgi/$0 [L,PT]
AliasMatch tambahan membuatnya begitu
http://git.example.com/project.git
akan memberikan akses mentah ke dir Git proyek (sehingga proyek dapat dikloning), sementara
http://git.example.com/project
akan memberikan akses gitweb yang ramah manusia.
Solusi ini tidak 100% antipeluru, dalam artian jika beberapa proyek memiliki referensi bernama
(cabang, tag) dimulai dengan git/, maka jalur seperti
http://git.example.com/project/command/abranch..git/abranch
akan gagal dengan kesalahan 404.
Gunakan gitweb online menggunakan layanan onworks.net