GoGPT Best VPN GoSearch

favorit OnWorks

gitweb - Online di Cloud

Jalankan gitweb di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator Windows online atau emulator MAC OS online

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, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


gitweb - Antarmuka web Git (antarmuka 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 peramban web yang menunjuk ke gitweb.

DESKRIPSI


Gitweb menyediakan antarmuka web ke repositori Git. Fitur-fiturnya meliputi:

· Melihat beberapa repositori Git dengan root yang sama.

· Menelusuri setiap revisi repositori.

· Melihat isi berkas dalam repositori pada revisi apa pun.

· Melihat log revisi cabang, riwayat file dan direktori, melihat apa yang terjadi
berubah kapan, oleh siapa.

· Melihat detail kesalahan/anotasi pada setiap berkas (jika diaktifkan).

· Menghasilkan umpan RSS dan Atom dari komitmen, untuk cabang mana pun. Umpan tersebut
dapat ditemukan otomatis di peramban web modern.

· Melihat semua yang diubah dalam revisi, dan menelusuri revisi satu per satu
waktu, melihat riwayat repositori.

· Menemukan komit yang pesan komitnya 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 berkas lokal, dan harus berbagi repositori root yang sama, yaitu semuanya berada di bawah
repositori induk tunggal (tetapi lihat juga bagian "Pengaturan server web lanjutan", "Server web
konfigurasi dengan beberapa akar proyek" subbagian).

$projectroot kita = '/path/ke/induk/direktori';

Nilai default untuk $projectroot adalah /pub/gitAnda dapat mengubahnya saat membangun gitweb
melalui variabel konfigurasi build GITWEB_PROJECTROOT.

Secara default semua repositori Git di bawah $projectroot terlihat dan tersedia untuk gitweb.
Daftar proyek dibuat secara default dengan memindai direktori $projectroot untuk
Repositori Git (untuk database objek lebih tepatnya; gitweb tidak tertarik pada
area kerja, dan paling cocok untuk menampilkan repositori "kosong").

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
Daripada membiarkan gitweb menemukan repositori dengan memindai sistem berkas mulai dari
$projectroot, Anda dapat memberikan daftar proyek yang terlihat yang telah dibuat sebelumnya dengan mengatur
$projects_list untuk menunjuk ke file teks biasa dengan daftar proyek (dengan beberapa tambahan
informasi).

Berkas ini menggunakan format berikut:

· Satu rekaman (untuk proyek / repositori) per baris; tidak mendukung kelanjutan baris
(baris baru lolos).

· Spasi awal dan akhir diabaikan.

· Bidang dipisahkan dengan spasi; setiap spasi 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#pengodean_URL), perbedaannya adalah SP
(" ") dapat dikodekan sebagai "+" (dan karenanya "+" juga harus dikodekan dalam persen).

Karakter yang dicadangkan adalah: "%" (digunakan untuk pengkodean), "+" (dapat digunakan untuk mengkodekan SPACE),
semua karakter spasi seperti yang didefinisikan dalam Perl, termasuk SP, TAB dan LF, (digunakan untuk
(bidang terpisah dalam suatu rekaman).

· Bidang yang diakui saat ini adalah:


jalur 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 tindakan project_index ( TXT link
pada halaman daftar proyek) langsung dari gitweb; lihat juga "Membuat daftar proyek menggunakan
bagian "gitweb" di bawah.

Contoh isi:

foo.git Joe+R+Peretas+[email dilindungi]>
foo/bar.git O+W+Ner+[email dilindungi]>

Secara default file ini hanya mengontrol proyek mana yang terlihat pada halaman daftar proyek (catatan
entri yang tidak mengarah ke repositori Git yang dikenali dengan benar tidak akan ditampilkan
oleh gitweb). Bahkan jika suatu 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 benar Anda dapat mengizinkan melihat hanya repositori
juga ditampilkan di halaman ikhtisar (yaitu hanya proyek yang tercantum secara eksplisit 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 ke dalam gitweb_membuat_indeks.perl File:

baca_file_konfigurasi("gitweb_config.perl");
$projects_list = $projectroot;

Kemudian buat skrip berikut untuk mendapatkan daftar proyek dalam format yang sesuai untuk
Variabel konfigurasi build GITWEB_LIST (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="DAPATKAN"
ekspor QUERY_STRING="a=indeks_proyek"

perl -- /var/www/cgi-bin/gitweb.cgi

Jalankan skrip ini dan simpan hasilnya ke dalam sebuah berkas. Berkas ini kemudian dapat digunakan sebagai proyek.
daftar file, yang berarti Anda dapat menetapkan $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 mengatur
Variabel konfigurasi gitweb $projects_list untuk menunjuknya. Dengan $strict_export yang ditetapkan,
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 dievaluasi menjadi benar, gitweb hanya akan menampilkan repositori jika file ini dinamai oleh
$export_ok ada di database objeknya (jika direktori memiliki file ajaib bernama
$export_ok).

Misalnya git-daemon(1) secara default (kecuali opsi --export-all digunakan) memungkinkan
menarik hanya untuk repositori yang memiliki git-daemon-ekspor-ok berkas. Menambahkan

$export_ok kami = "git-daemon-export-ok";

membuat gitweb menampilkan dan mengizinkan akses hanya ke repositori yang dapat diambil dari
melalui protokol git://.

· Terakhir, dimungkinkan untuk menentukan subrutin perl sewenang-wenang yang akan dipanggil
untuk setiap repositori untuk menentukan apakah repositori tersebut dapat diekspor. Subrutin menerima
jalur absolut ke proyek (repositori) sebagai satu-satunya parameternya (yaitu
"$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:

$export_auth_hook = sub {
gunakan Apache2::SubRequest();
gunakan Apache2::Const -compile => qw(HTTP_OK);
$path saya = "$_[0]/HEAD";
$r saya = Apache2::RequestUtil->request;
$sub saya = $r->lookup_file($path);
kembalikan $sub->namafile 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/konfigurasi, Lihat
git-config(1)).

Anda dapat menggunakan file berikut di repositori:

README.html
File html (fragmen HTML) yang disertakan pada halaman "ringkasan" proyek gitweb
di dalam elemen blok. Anda dapat menggunakannya untuk deskripsi proyek yang lebih panjang, untuk
menyediakan tautan (misalnya ke beranda proyek), dll. Ini hanya dikenali jika XSS
pencegahannya mati ($prevent_xss salah, lihat gitweb.conf(5)); cara untuk memasukkan
README dengan aman saat pencegahan XSS aktif mungkin dapat diatasi 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). Berkas teks biasa; HTML akan di-escape. Secara default diatur ke

Repositori tanpa nama; edit berkas ini untuk menamakannya untuk gitweb.

dari template selama pembuatan repositori, biasanya dipasang di
/usr/share/git-core/templat/Anda dapat menggunakan konfigurasi repo gitweb.description
variabel, tetapi berkasnya diutamakan.

kategori (atau gitweb.category)
Kategori baris tunggal suatu proyek, digunakan untuk mengelompokkan proyek jika
$projects_list_group_categories diaktifkan. Secara default (file dan konfigurasi
variabel tidak ada), proyek yang tidak berkategori dimasukkan ke dalam $project_list_default_category
kategori. Anda dapat menggunakan variabel konfigurasi repo gitweb.category, tetapi file tersebut
diutamakan.

Variabel konfigurasi $projects_list_group_categories dan
$project_list_default_category dijelaskan dalam gitweb.conf(5)

cloneurl (atau gitweb.url bernilai ganda)
Berkas dengan URL repositori (digunakan untuk kloning dan pengambilan), satu per baris. Ditampilkan di
Halaman ringkasan proyek. Anda dapat menggunakan konfigurasi repositori gitweb.url multi-nilai.
variabel untuk itu, tetapi berkasnya diutamakan.

Ini adalah peningkatan per repositori / versi @git_base_url_list berbasis awalan global
variabel konfigurasi gitweb (lihat gitweb.conf(5)).

pemilik gitweb
Anda dapat menggunakan variabel konfigurasi repositori gitweb.owner untuk mengatur repositori
pemilik. Ini ditampilkan dalam daftar proyek dan halaman ringkasan.

Jika tidak diatur, pemilik direktori sistem berkas 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 secara default mengambil nilai dari file ini untuk repositori yang diberikan.

berbagai variabel konfigurasi gitweb.* (dalam konfigurasi)
Baca deskripsi hash %feature untuk daftar dan deskripsi detailnya. 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 pada umumnya dibagi 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. Defaultnya adalah daftar_proyek jika repo tidak diatur, dan ke
ringkasan jika tidak.

revisi
Revisi ditampilkan. Defaultnya adalah HEAD.

path
Jalan di dalam bahwa tindakan tersebut dilakukan, untuk tindakan tersebut
yang membutuhkannya.

argumen
Argumen apa pun yang mengendalikan perilaku tindakan.

Beberapa tindakan memerlukan atau memungkinkan untuk menentukan dua revisi, dan terkadang bahkan dua nama jalur.
Dalam bentuk paling umum, URL gitweb berbasis path_info (komponen) terlihat seperti ini:

.../gitweb.cgi/ / / :/ .. :/ ?

Setiap tindakan diimplementasikan sebagai subrutin, dan harus ada dalam hash %actions. Beberapa
Tindakan dinonaktifkan secara default, dan harus diaktifkan melalui mekanisme fitur. Misalnya
untuk mengaktifkan menyalahkan lihat tambahkan yang berikut ke berkas konfigurasi gitweb:

$fitur{'salahkan'}{'default'} = [1];

tindakan:
Tindakan standarnya adalah:

daftar_proyek
Mencantumkan repositori Git yang tersedia. Ini adalah perintah default jika tidak ada repositori yang tersedia.
yang ditentukan dalam URL.

ringkasan
Menampilkan ringkasan tentang repositori yang diberikan. Ini adalah perintah default jika tidak ada tindakan yang dilakukan.
ditentukan dalam URL, dan hanya repositori yang ditentukan.

kepala, remote
Mencantumkan semua cabang pelacakan lokal atau jarak jauh dalam repositori yang diberikan.

Yang terakhir tidak tersedia secara default, kecuali dikonfigurasi.

tag
Daftar semua tag (ringan dan beranotasi) dalam repositori yang diberikan.

gumpalan, pohon
Menunjukkan berkas dan direktori dalam jalur repositori tertentu, pada revisi tertentu. Ini adalah
perintah default jika tidak ada tindakan yang ditentukan di URL, dan jalur diberikan.

gumpalan_polos
Mengembalikan data mentah untuk berkas dalam repositori yang diberikan, pada jalur dan revisi yang diberikan.
Tautan ke tindakan ini ditandai mentah.

blobdiff
Menunjukkan perbedaan antara dua revisi berkas yang sama.

menyalahkan, menyalahkan_bertahap
Menampilkan informasi kesalahan (juga disebut anotasi) untuk sebuah berkas. Berdasarkan per baris
ini menunjukkan revisi di mana baris tersebut terakhir diubah dan pengguna yang melakukan komitmen
perubahan. Versi tambahan (yang jika dikonfigurasi akan digunakan secara otomatis saat
JavaScript diaktifkan) menggunakan Ajax untuk menambahkan info kesalahan secara bertahap ke konten
file yang diberikan.

Tindakan ini dinonaktifkan secara default karena alasan kinerja.

komit, commitdiff
Menampilkan informasi tentang komitmen tertentu dalam repositori. melakukan melihat pertunjukan
informasi tentang komitmen secara lebih rinci, perbedaan komitmen tindakan menunjukkan perubahan untuk
diberikan komit.

tambalan
Mengembalikan komit dalam format surat teks biasa, cocok untuk diterapkan dengan git-am(1).

label
Menampilkan tag beranotasi tertentu (objek tag).

log, log pendek
Menampilkan informasi log (pesan komit atau hanya subjek komit) untuk cabang tertentu
(dimulai dari revisi yang diberikan).

The log pendek tampilan lebih padat; menampilkan satu komit per baris.

sejarah
Menampilkan riwayat file atau direktori di jalur repositori tertentu, dimulai dari yang diberikan
revisi (default ke HEAD, yaitu cabang default).

Pandangan ini mirip dengan log pendek melihat.

rss, atom
Menghasilkan umpan RSS (atau Atom) tentang perubahan pada 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 terinstal, dan berisi
gitweb_config.perl.

Jika Anda telah mengonfigurasi server web yang tidak tercantum di sini untuk gitweb, silakan kirimkan
instruksi sehingga dapat disertakan dalam rilis mendatang.

Apache as CGI
Apache harus dikonfigurasi untuk mendukung skrip CGI di direktori tempat gitweb berada
terpasang. Mari kita asumsikan bahwa itu /var/www/cgi-bin direktori.

SkripAlias ​​/cgi-bin/ "/var/www/cgi-bin/"


Indeks Opsi FollowSymlinks ExecCGI
Tidak ada AllowOverride
Pesanan memungkinkan, menolak
Izinkan dari semua


Dengan konfigurasi tersebut, jalur lengkap untuk menelusuri repositori akan menjadi:

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::Registri
Opsi Perl +ParseHeaders
Indeks Opsi FollowSymlinks +ExecCGI
Tidak ada AllowOverride
Pesanan memungkinkan, menolak
Izinkan dari semua


Dengan konfigurasi tersebut, jalur lengkap untuk menelusuri repositori akan menjadi:

http://server/perl/gitweb.cgi

Apache dengan CGI cepat
Gitweb bekerja dengan Apache dan FastCGI. Pertama, Anda perlu mengganti nama, menyalin, atau menautkan simbol gitweb.cgi.
ke gitweb.fcgi. Mari kita asumsikan bahwa gitweb diinstal di /usr/bagikan/gitweb direktori. Itu
konfigurasi Apache berikut ini cocok (BELUM TERUJI!)

FastCgiServer /usr/berbagi/gitweb/gitweb.cgi
Alias ​​Skrip /gitweb /usr/berbagi/gitweb/gitweb.cgi

Alias ​​/gitweb/statis /usr/share/gitweb/statis
<Direktori /usr/share/gitweb/statis>
SetHandler penangan default


Dengan konfigurasi tersebut, jalur lengkap untuk menelusuri repositori akan menjadi:

http://server/gitweb

ADVANCED WEB SERVER SETUP


Semua contoh tersebut menggunakan penulisan ulang permintaan, dan memerlukan 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 gitweb dan repositori http:// Anda, Anda dapat
konfigurasikan Apache seperti ini:


NamaServer git.example.org
Akar Dokumen /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf

# mengaktifkan penulisan ulang mod
RewriteEngine on

# jadikan halaman depan sebagai penulisan ulang internal ke skrip gitweb
Aturan Penulisan Ulang ^/$ /cgi-bin/gitweb.cgi

# membuat akses untuk "klien bodoh" berfungsi
Aturan Penulisan Ulang ^/(.*\.git/(?!/?(HEAD|info|objek|ref)).*)?$ \
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]


Konfigurasi di atas mengharapkan repositori publik Anda berada 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 URL git:// dengan tepat
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; itu diperlukan hanya jika file konfigurasi Anda berada di tempat yang berbeda
tempat daripada yang sudah ada (selama mengkompilasi 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 dalam file konfigurasi gitweb Anda (/etc/gitweb.conf contoh berikut):

@stylesheets = ("/some/absolute/path/gitweb.css");
$my_uri = "/";
$home_link = "/";
$per_permintaan_konfigurasi = 1;

Saat ini gitweb harus membuat tag dasar HTML bila diperlukan (untuk mengatur URI dasar untuk
tautan relatif), jadi seharusnya berfungsi 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 host virtual (dalam berkas konfigurasi Apache) akan terlihat seperti ini:


NamaServer git.example.org
Akar Dokumen /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf

# mengaktifkan penulisan ulang mod
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 beranda pengguna unix
# http://git.example.org/~ /
Aturan Penulisan Ulang ^/\~([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/rumah/$1/publik_git/,L,PT]

# http://git.example.org/+ /
#RewriteRule ^/\+([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/rumah/$1/publik_git/,L,PT]

# http://git.example.org/user//
#RewriteRule ^/pengguna/([^\/]+)/(gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/rumah/$1/publik_git/,L,PT]

# daftar akar proyek yang ditentukan
Aturan Penulisan Ulang ^/scm(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/pub/scm/,L,PT]
Aturan Penulisan Ulang ^/ var(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/var/git/,L,PT]

# membuat akses untuk "klien bodoh" berfungsi
Aturan Penulisan Ulang ^/(.*\.git/(?!/?(HEAD|info|objek|ref)).*)?$ \
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]


Di sini root proyek 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 diatur untuk setiap permintaan, jadi $per_request_config harus
salah, atau kode di atas harus dimasukkan ke dalam kode yang dirujuk oleh $per_request_config;

Konfigurasi ini memungkinkan dua hal. Pertama, setiap pengguna Unix ( ) dari server akan
dapat menelusuri repositori Git gitweb 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 menginginkan 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 hapus komentar salah satu
mengikuti sesuai dengan apa yang Anda inginkan.

Kedua, repositori yang 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
akar 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

$fitur{'pathinfo'}{'default'} = [1];

dalam file konfigurasi gitweb Anda, Anda dapat 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
konfigurasi mengasumsikan bahwa /var/www/gitweb adalah DocumentRoot dari webserver Anda, berisi
skrip gitweb.cgi dan file statis pelengkap (stylesheet, favicon, JavaScript):


AliasServer git.contoh.com

DocumentRoot /var/www/gitweb


Opsi ExecCGI
Tambahkan Penangan cgi-skrip cgi

DirektoriIndeks 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 dilayani dengan benar, sedangkan
URL lainnya akan diteruskan ke gitweb sebagai parameter PATH_INFO.

Melihat bahwa dalam kasus 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 di
Bagian "URL Tunggal untuk gitweb dan untuk pengambilan"). Solusi yang mungkin untuk yang terakhir adalah
berikut ini: di direktori root proyek Anda (misalnya /pub/git) memiliki proyek yang diberi nama tanpa a
ekstensi .git (misalnya /pub/git/proyek alih-alih /pub/git/proyek.git) dan konfigurasikan
Apache sebagai berikut:


AliasServer git.contoh.com

DocumentRoot /var/www/gitweb

AliasMatch ^(/.*?)(\.git)(/.*)?$ /pub/git$1$3

Opsi ExecCGI
Tambahkan Penangan cgi-skrip cgi

DirektoriIndeks gitweb.cgi

RewriteEngine On
RewriteCond% {REQUEST_FILENAME}-f!
RewriteCond% {} REQUEST_FILENAME!-D
Aturan Penulisan Ulang ^.* /gitweb.cgi/$0 [L,PT]



AliasMatch tambahan membuatnya jadi

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 menyediakan akses gitweb yang mudah digunakan manusia.

Solusi ini tidak 100% anti peluru, dalam artian jika suatu proyek mempunyai referensi bernama
(cabang, tag) dimulai dengan git/, lalu jalur seperti

http://git.example.com/project/command/abranch..git/abranch

akan gagal dengan kesalahan 404.

Gunakan gitweb online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad




×
iklan
❤️Berbelanja, pesan, atau beli di sini — tanpa biaya, membantu menjaga layanan tetap gratis.