EnglishFrenchSpanyol

Ad


Favicon OnWorks

gitweb - Dalam talian dalam Awan

Jalankan gitweb dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan gitweb yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


gitweb - antara muka web Git (bahagian hadapan web ke repositori Git)

SINOPSIS


Untuk bermula dengan gitweb, jalankan git-instaweb(1) dari repositori Git. Ini akan
konfigurasikan dan mulakan pelayan web anda, dan jalankan penyemak imbas web yang menunjuk ke gitweb.

DESCRIPTION


Gitweb menyediakan antara muka web kepada repositori Git. Ciri-cirinya termasuk:

· Melihat berbilang repositori Git dengan akar biasa.

· Melayari setiap semakan repositori.

· Melihat kandungan fail dalam repositori pada sebarang semakan.

· Melihat log semakan cawangan, sejarah fail dan direktori, lihat apa yang berlaku
berubah bila, oleh siapa.

· Melihat butiran kesalahan/anotasi mana-mana fail (jika didayakan).

· Menjana suapan RSS dan Atom bagi komit, untuk mana-mana cawangan. Suapan adalah
boleh ditemui secara automatik dalam pelayar web moden.

· Melihat semua yang telah diubah dalam semakan, dan melangkah melalui semakan satu demi satu
masa, melihat sejarah repositori.

· Mencari komitmen yang menghantar mesej sepadan dengan istilah carian yang diberikan.

Lihat http://git.kernel.org/?p=git/git.git;a=tree;f=gitweb or
http://repo.or.cz/w/git.git/tree/HEAD:/gitweb/ untuk kod sumber gitweb, dilayari menggunakan
gitweb itu sendiri.

CONFIGURATION


Pelbagai aspek tingkah laku gitweb boleh dikawal melalui fail konfigurasi
gitweb_config.perl or /etc/gitweb.conf. Lihat gitweb.conf(5) untuk butiran.

Repositori
Gitweb boleh menunjukkan maklumat daripada satu atau lebih repositori Git. Repositori ini perlu
semua pada sistem fail tempatan, dan perlu berkongsi akar repositori biasa, iaitu semuanya di bawah a
repositori induk tunggal (tetapi lihat juga bahagian "Persediaan pelayan web lanjutan", "Pelayan Web
konfigurasi dengan subseksyen akar berbilang projek).

$projectroot = '/path/to/parent/directory' kami;

Nilai lalai untuk $projectroot ialah /pub/git. Anda boleh mengubahnya semasa membina gitweb
melalui GITWEB_PROJECTROOT membina pembolehubah konfigurasi.

Secara lalai semua repositori Git di bawah $projectroot kelihatan dan tersedia untuk gitweb.
Senarai projek dijana secara lalai dengan mengimbas direktori $projectroot untuk
Repositori Git (untuk pangkalan data objek menjadi lebih tepat; gitweb tidak berminat dengan a
kawasan kerja, dan paling sesuai untuk menunjukkan repositori "telanjang").

Nama repositori dalam gitweb ialah laluan ke $GIT_DIR (pangkalan data objeknya)
berbanding $projectroot. Oleh itu repositori $repo boleh didapati di
"$projectroot/$repo".

Projek senarai fail format
Daripada gitweb mencari repositori dengan mengimbas sistem fail bermula dari
$projectroot, anda boleh menyediakan senarai pra-jana projek yang boleh dilihat dengan menetapkan
$projects_list untuk menunjuk ke fail teks biasa dengan senarai projek (dengan beberapa tambahan
maklumat).

Fail ini menggunakan format berikut:

· Satu rekod (untuk projek / repositori) setiap baris; tidak menyokong penerusan talian
(baris baharu melarikan diri).

· Ruang putih mendahului dan mengekori diabaikan.

· Ruang kosong dipisahkan medan; sebarang larian ruang putih boleh digunakan sebagai pemisah medan
(peraturan untuk "split(" ", $line)" Perl).

· Medan menggunakan pengekodan URI yang diubah suai, ditakrifkan dalam RFC 3986, bahagian 2.1 (Percent-Pengekodan),
atau sebaliknya "Pengekodan rentetan pertanyaan" (lihat
http://en.wikipedia.org/wiki/Query_string#URL_encoding), perbezaannya ialah SP
(" ") boleh dikodkan sebagai "+" (dan oleh itu "+" perlu juga dikodkan peratus).

Aksara terpelihara ialah: "%" (digunakan untuk pengekodan), "+" (boleh digunakan untuk mengekod SPACE),
semua aksara ruang putih seperti yang ditakrifkan dalam Perl, termasuk SP, TAB dan LF, (dulu
medan berasingan dalam rekod).

· Medan yang diiktiraf pada masa ini ialah:


laluan ke repositori GIT_DIR, berbanding $projectroot


dipaparkan sebagai pemilik repositori, sebaik-baiknya nama penuh, atau e-mel, atau kedua-duanya

Anda boleh menjana fail indeks senarai projek menggunakan tindakan project_index (the TXT pautan
pada halaman senarai projek) terus dari gitweb; lihat juga "Menjana senarai projek menggunakan
gitweb" bahagian di bawah.

Contoh kandungan:

foo.git Joe+R+Hacker+[e-mel dilindungi]>
foo/bar.git O+W+Ner+[e-mel dilindungi]>

Secara lalai fail ini hanya mengawal projek yang mana dilihat pada halaman senarai projek (nota
bahawa entri yang tidak menunjuk kepada repositori Git yang diiktiraf dengan betul tidak akan dipaparkan
oleh gitweb). Walaupun projek tidak kelihatan pada halaman senarai projek, anda boleh melihatnya
namun dengan membuat tangan URL gitweb. Dengan menetapkan konfigurasi $strict_export
pembolehubah (lihat gitweb.conf(5)) kepada nilai sebenar anda boleh membenarkan melihat repositori sahaja
juga ditunjukkan pada halaman gambaran keseluruhan (iaitu hanya projek yang disenaraikan secara jelas dalam senarai projek
fail boleh diakses).

Menjana projek-projek senarai menggunakan gitweb
Kami menganggap bahawa GITWEB_CONFIG mempunyai nilai Makefile lalai, iaitu gitweb_config.perl.
Masukkan yang berikut gitweb_make_index.perl fail:

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

Kemudian buat skrip berikut untuk mendapatkan senarai projek dalam format yang sesuai
GITWEB_LIST bina pembolehubah konfigurasi (atau pembolehubah $projects_list dalam konfigurasi gitweb):

#!/ Bin / sh

eksport GITWEB_CONFIG="gitweb_make_index.perl"
eksport GATEWAY_INTERFACE="CGI/1.1"
eksport HTTP_ACCEPT="*/*"
eksport REQUEST_METHOD="GET"
eksport QUERY_STRING="a=project_index"

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

Jalankan skrip ini dan simpan outputnya ke fail. Fail ini kemudiannya boleh digunakan sebagai projek
senarai fail, yang bermaksud bahawa anda boleh menetapkan $projects_list kepada nama failnya.

Mengawal mengakses kepada Git repositori
Secara lalai semua repositori Git di bawah $projectroot kelihatan dan tersedia untuk gitweb.
Anda bagaimanapun boleh mengkonfigurasi cara gitweb mengawal akses kepada repositori.

· Seperti yang diterangkan dalam bahagian "Format fail senarai projek", anda boleh mengawal projek yang mana
adalah dilihat dengan selektif termasuk repositori dalam fail senarai projek, dan tetapan
$projects_list pembolehubah konfigurasi gitweb untuk menunjuk kepadanya. Dengan set $strict_export,
fail senarai projek boleh digunakan untuk mengawal repositori yang mana tersedia juga.

· Anda boleh mengkonfigurasi gitweb untuk menyenaraikan sahaja dan membenarkan paparan yang dieksport secara eksplisit
repositori, melalui pembolehubah $export_ok dalam fail konfigurasi gitweb; lihat gitweb.conf(5)
halaman manual. Jika nilainya benar, gitweb menunjukkan repositori hanya jika fail ini dinamakan oleh
$export_ok wujud dalam pangkalan data objeknya (jika direktori mempunyai fail ajaib bernama
$export_ok).

Sebagai contoh git-daemon(1) secara lalai (melainkan --export-all pilihan digunakan) membenarkan
menarik hanya untuk repositori yang mempunyai git-daemon-eksport-ok fail. Menambah

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

membuat gitweb menunjukkan dan membenarkan akses hanya kepada repositori yang boleh diambil daripada
melalui protokol git://.

· Akhir sekali, adalah mungkin untuk menentukan subrutin perl sewenang-wenangnya yang akan dipanggil
bagi setiap repositori untuk menentukan sama ada ia boleh dieksport. Subrutin menerima a
laluan mutlak ke projek (repositori) sebagai satu-satunya parameternya (cth
"$projectroot/$project").

Contohnya, jika anda menggunakan mod_perl untuk menjalankan skrip, dan mempunyai protokol HTTP yang bodoh
pengesahan yang dikonfigurasikan untuk repositori anda, anda boleh menggunakan cangkuk berikut untuk
benarkan akses hanya jika pengguna diberi kuasa untuk membaca fail:

$export_auth_hook = sub {
gunakan Apache2::SubRequest ();
gunakan Apache2::Const -compile => qw(HTTP_OK);
$path saya = "$_[0]/HEAD";
my $r = Apache2::RequestUtil->request;
my $sub = $r->lookup_file($path);
kembalikan $sub->nama fail eq $path
&& $sub->status == Apache2::Const::HTTP_OK;
};

Per-repositori gitweb konfigurasi
Anda boleh mengkonfigurasi repositori individu yang ditunjukkan dalam gitweb dengan mencipta fail dalam fail GIT_DIR
repositori Git, atau dengan menetapkan beberapa pembolehubah konfigurasi repo (dalam GIT_DIR/config, Lihat
git-config(1)).

Anda boleh menggunakan fail berikut dalam repositori:

README.html
Fail html (serpihan HTML) yang disertakan pada halaman "ringkasan" projek gitweb
dalam elemen blok. Anda boleh menggunakannya untuk penerangan yang lebih panjang tentang projek, untuk
menyediakan pautan (contohnya ke halaman utama projek), dsb. Ini dikenali hanya jika XSS
pencegahan dimatikan ($prevent_xss adalah palsu, lihat gitweb.conf(5)); satu cara untuk memasukkan a
README dengan selamat apabila pencegahan XSS dihidupkan mungkin akan dilaksanakan pada masa hadapan.

penerangan (atau gitweb.description)
Pendek (dipendekkan kepada $projects_list_description_width dalam halaman senarai projek, yang
ialah 25 aksara secara lalai; lihat gitweb.conf(5)) penerangan satu baris projek
(daripada repositori). Fail teks biasa; HTML akan terlepas. Secara lalai ditetapkan kepada

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

daripada templat semasa penciptaan repositori, biasanya dipasang dalam
/usr/share/git-core/templates/. Anda boleh menggunakan konfigurasi repo gitweb.description
pembolehubah, tetapi fail diutamakan.

kategori (atau gitweb.category)
Kategori baris Singe bagi projek, digunakan untuk mengumpulkan projek jika
$projects_list_group_categories didayakan. Secara lalai (fail dan konfigurasi
pembolehubah tidak hadir), projek tidak berkategori dimasukkan ke dalam $project_list_default_category
kategori. Anda boleh menggunakan pembolehubah konfigurasi repo gitweb.category, tetapi fail
diutamakan.

Pembolehubah konfigurasi $projects_list_group_categories dan
$project_list_default_category diterangkan dalam gitweb.conf(5)

cloneurl (atau gitweb.url berbilang nilai)
Fail dengan URL repositori (digunakan untuk mengklon dan mengambil), satu setiap baris. Dipaparkan dalam
halaman ringkasan projek. Anda boleh menggunakan konfigurasi repositori gitweb.url berbilang nilai
pembolehubah untuk itu, tetapi fail diutamakan.

Ini ialah peningkatan setiap repositori / versi @git_base_url_list berasaskan awalan global
pembolehubah konfigurasi gitweb (lihat gitweb.conf(5)).

gitweb.owner
Anda boleh menggunakan pembolehubah konfigurasi repositori gitweb.owner untuk menetapkan pembolehubah repositori
pemilik. Ia dipaparkan dalam senarai projek dan halaman ringkasan.

Jika ia tidak ditetapkan, pemilik direktori sistem fail digunakan (melalui medan GECOS, iaitu nama sebenar
bidang dari getpwuid(3)) jika $projects_list tidak ditetapkan (gitweb mengimbas $projectroot untuk
repositori); jika $projects_list menunjuk ke fail dengan senarai repositori, maka
pemilik projek lalai kepada nilai daripada fail ini untuk repositori yang diberikan.

pelbagai gitweb.* pembolehubah konfigurasi (dalam konfigurasi)
Baca perihalan %ciri cincang untuk senarai terperinci dan huraian. Lihat juga
"Mengkonfigurasi ciri gitweb" dalam bahagian gitweb.conf(5)

TINDAKAN, DAN URL


Gitweb boleh menggunakan URL berasaskan path_info (komponen), atau ia boleh menghantar semua maklumat yang diperlukan
melalui parameter pertanyaan. URL gitweb biasa dipecahkan kepada lima komponen:

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

repo
Repositori tindakan akan dilakukan.

Semua tindakan kecuali yang menyenaraikan semua projek yang tersedia, dalam apa jua bentuk,
memerlukan parameter ini.

tindakan
Aksi yang akan dijalankan. Lalai kepada senarai_projek jika repo tidak ditetapkan, dan kepada
ringkasan sebaliknya.

semakan
Semakan ditunjukkan. Lalai kepada HEAD.

jalan
Laluan dalam bahawa tindakan itu dilakukan pada, untuk tindakan tersebut
yang memerlukannya.

hujah
Sebarang hujah yang mengawal tingkah laku tindakan.

Sesetengah tindakan memerlukan atau membenarkan untuk menentukan dua semakan, dan kadangkala juga dua nama laluan.
Dalam kebanyakan bentuk umum URL gitweb berasaskan path_info (komponen) kelihatan seperti ini:

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

Setiap tindakan dilaksanakan sebagai subrutin dan mesti ada dalam cincangan %actions. Sesetengah
tindakan dilumpuhkan secara lalai, dan mesti dihidupkan melalui mekanisme ciri. Sebagai contoh
bagi membolehkan menyalahkan lihat tambah yang berikut pada fail konfigurasi gitweb:

$feature{'blame'}{'default'} = [1];

Tindakan:
Tindakan standard ialah:

senarai_projek
Menyenaraikan repositori Git yang tersedia. Ini adalah arahan lalai jika tiada repositori
dinyatakan dalam URL.

ringkasan
Memaparkan ringkasan tentang repositori yang diberikan. Ini ialah arahan lalai jika tiada tindakan
ditentukan dalam URL, dan hanya repositori ditentukan.

kepala, alat kawalan jauh
Menyenaraikan semua cawangan tempatan atau semua penjejakan jauh dalam repositori yang diberikan.

Yang terakhir ini tidak tersedia secara lalai, melainkan dikonfigurasikan.

tags
Senaraikan semua teg (ringan dan beranotasi) dalam repositori yang diberikan.

gumpalan, pokok
Menunjukkan fail dan direktori dalam laluan repositori yang diberikan, pada semakan yang diberikan. Ini adalah
arahan lalai jika tiada tindakan dinyatakan dalam URL dan laluan diberikan.

blob_plain
Mengembalikan data mentah untuk fail dalam repositori yang diberikan, pada laluan dan semakan yang diberikan.
Pautan ke tindakan ini ditandakan mentah.

blobdiff
Menunjukkan perbezaan antara dua semakan fail yang sama.

salahkan, blame_incremental
Menunjukkan maklumat kesalahan (juga dipanggil anotasi) untuk fail. Atas dasar setiap baris
ia menunjukkan semakan di mana baris itu kali terakhir ditukar dan pengguna yang melakukan
perubahan itu. Versi tambahan (yang jika dikonfigurasikan digunakan secara automatik apabila
JavaScript didayakan) menggunakan Ajax untuk menambah maklumat kesalahan secara berperingkat pada kandungan
fail yang diberikan.

Tindakan ini dilumpuhkan secara lalai atas sebab prestasi.

commit, commitdiff
Menunjukkan maklumat tentang komitmen tertentu dalam repositori. The melakukan melihat rancangan
maklumat tentang commit dengan lebih terperinci, the commitdiff tindakan menunjukkan set perubahan untuk
diberi komitmen.

tampalan
Mengembalikan komit dalam format mel teks biasa, sesuai untuk memohon dengan git-am(1).

tag
Paparkan teg beranotasi khusus (objek teg).

log, shortlog
Menunjukkan maklumat log (komit mesej atau hanya komit subjek) untuk cawangan tertentu
(bermula daripada semakan yang diberikan).

. shortlog pandangan lebih padat; ia menunjukkan satu komit setiap baris.

sejarah
Menunjukkan sejarah fail atau direktori dalam laluan repositori yang diberikan, bermula dari yang diberikan
semakan (lalai kepada HEAD, iaitu cawangan lalai).

Pandangan ini serupa dengan shortlog pandangan.

rss, atom
Menghasilkan suapan RSS (atau Atom) perubahan kepada repositori.

LAMAN WEB CONFIGURATION


Bahagian ini menerangkan cara mengkonfigurasi beberapa pelayan web biasa untuk menjalankan gitweb. Dalam semua kes,
/path/to/gitweb dalam contoh ialah direktori yang anda jalankan memasang gitweb, dan mengandungi
gitweb_config.perl.

Jika anda telah mengkonfigurasi pelayan web yang tidak disenaraikan di sini untuk gitweb, sila hantarkan
arahan supaya ia boleh disertakan dalam keluaran masa hadapan.

Apache as CGI
Apache mesti dikonfigurasikan untuk menyokong skrip CGI dalam direktori di mana gitweb berada
dipasang. Mari kita andaikan bahawa ia adalah /var/www/cgi-bin direktori.

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


Indeks Pilihan IkutiSymlinks ExecCGI
AllowOverride Tiada
Perintah membenarkan, menafikan
Benarkan dari semua


Dengan konfigurasi itu laluan penuh untuk menyemak imbas repositori ialah:

http://server/cgi-bin/gitweb.cgi

Apache bersama mod_perl, melalui ModPerl::Pendaftaran
Anda boleh menggunakan mod_perl dengan gitweb. Anda mesti memasang Apache::Registry (untuk mod_perl 1.x) atau
ModPerl::Registry (untuk mod_perl 2.x) untuk mendayakan sokongan ini.

Dengan mengandaikan bahawa gitweb dipasang ke /var/www/perl, konfigurasi Apache berikut
(untuk mod_perl 2.x) adalah sesuai.

Alias ​​/perl "/var/www/perl"


SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Indeks Pilihan FollowSymlinks +ExecCGI
AllowOverride Tiada
Perintah membenarkan, menafikan
Benarkan dari semua


Dengan konfigurasi itu laluan penuh untuk menyemak imbas repositori ialah:

http://server/perl/gitweb.cgi

Apache bersama CepatCGI
Gitweb berfungsi dengan Apache dan FastCGI. Mula-mula anda perlu menamakan semula, menyalin atau symlink gitweb.cgi
ke gitweb.fcgi. Mari kita anggap bahawa gitweb dipasang di /usr/share/gitweb direktori. The
konfigurasi Apache berikut adalah sesuai (BELUM DIUJI!)

FastCgiServer /usr/share/gitweb/gitweb.cgi
ScriptAlias ​​/gitweb /usr/share/gitweb/gitweb.cgi

Alias ​​/gitweb/static /usr/share/gitweb/static
<Direktori /usr/share/gitweb/static>
Pengendali lalai SetHandler


Dengan konfigurasi itu laluan penuh untuk menyemak imbas repositori ialah:

http://server/gitweb

ADVANCED WEB SERVER SETUP


Semua contoh tersebut menggunakan penulisan semula permintaan, dan memerlukan mod_rewrite (atau setara; contoh
di bawah ditulis untuk Apache).

tunggal URL Untuk gitweb and Untuk mengambil
Jika anda ingin mempunyai satu URL untuk kedua-dua gitweb dan http:// repositori anda, anda boleh
konfigurasikan Apache seperti ini:


Nama Pelayan git.example.org
DocumentRoot /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf

# menghidupkan mod tulis semula
RewriteEngine pada

# jadikan muka depan sebagai penulisan semula dalaman kepada skrip gitweb
RewriteRule ^/$ /cgi-bin/gitweb.cgi

# buat akses untuk kerja "pelanggan bodoh".
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objek|ref)).*)?$ \
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]


Konfigurasi di atas menjangkakan repositori awam anda akan hidup di bawah /pub/git dan akan
berkhidmat kepada mereka sebagai http://git.domain.org/dir-under-pub-git, kedua-duanya sebagai URL Git klon dan sebagai
antara muka gitweb boleh dilayari. Jika anda kemudian mulakan anda git-daemon(1) dengan
--base-path=/pub/git --export-all maka anda juga boleh menggunakan git:// URL dengan tepat
jalan yang sama.

Menetapkan pembolehubah persekitaran GITWEB_CONFIG akan memberitahu gitweb untuk menggunakan fail bernama
(iaitu dalam contoh ini /etc/gitweb.conf) sebagai konfigurasi untuk gitweb. Anda tidak begitu
memerlukannya dalam contoh di atas; ia diperlukan hanya jika fail konfigurasi anda berbeza
tempat daripada terbina dalam (semasa menyusun gitweb) gitweb_config.perl or /etc/gitweb.conf. Lihat
gitweb.conf(5) untuk butiran, terutamanya maklumat tentang peraturan keutamaan.

Jika anda menggunakan peraturan tulis semula daripada contoh anda kekuatan juga memerlukan sesuatu seperti
mengikuti dalam fail konfigurasi gitweb anda (/etc/gitweb.conf contoh berikut):

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

Pada masa kini walaupun gitweb harus mencipta tag asas HTML apabila diperlukan (untuk menetapkan URI asas untuk
pautan relatif), jadi ia harus berfungsi secara automatik.

web Server konfigurasi bersama pelbagai projek' akar
Jika anda ingin menggunakan gitweb dengan beberapa akar projek, anda boleh mengedit hos maya Apache anda
dan fail konfigurasi gitweb dengan cara berikut.

Konfigurasi hos maya (dalam fail konfigurasi Apache) sepatutnya kelihatan seperti ini:


Nama Pelayan git.example.org
DocumentRoot /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf

# menghidupkan mod tulis semula
RewriteEngine pada

# jadikan muka depan sebagai penulisan semula dalaman kepada skrip gitweb
RewriteRule ^/$ /cgi-bin/gitweb.cgi [QSA,L,PT]

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

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

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

# senarai punca projek yang ditentukan
RewriteRule ^/scm(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/pub/scm/,L,PT]
RewriteRule ^/ var(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/var/git/,L,PT]

# buat akses untuk kerja "pelanggan bodoh".
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objek|ref)).*)?$ \
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]


Di sini akar projek sebenar dihantar ke gitweb melalui pembolehubah persekitaran GITWEB_PROJECT_ROOT
daripada pelayan web, jadi anda perlu meletakkan baris berikut dalam fail konfigurasi gitweb
(/etc/gitweb.conf dalam contoh di atas):

$projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/pub/git";

Nota bahawa ini perlu ditetapkan untuk setiap permintaan, jadi sama ada $per_request_config mestilah
palsu, atau yang di atas mesti dimasukkan ke dalam kod yang dirujuk oleh $per_request_config;

Konfigurasi ini membolehkan dua perkara. Pertama, setiap pengguna unix ( ) pelayan akan
dapat menyemak imbas repositori gitweb Git yang terdapat dalam ~/public_git/ dengan
url berikut:

http://git.example.org/~ /

Jika anda tidak mahu ciri ini pada pelayan anda hanya alih keluar peraturan tulis semula kedua.

Jika anda sudah menggunakan 'mod_userdir` dalam hos maya anda atau anda tidak mahu menggunakan '~' sebagai
aksara pertama, cuma ulas atau alih keluar peraturan tulis semula kedua, dan nyahkomen salah satu daripada
mengikut apa yang anda mahukan.

Kedua, repositori yang terdapat dalam /pub/scm/ and /var/git/ akan boleh diakses melalui
http://git.example.org/scm/ and http://git.example.org/var/. Anda boleh menambah seberapa banyak projek
akar seperti yang anda mahu dengan menambah peraturan tulis semula seperti yang ketiga dan keempat.

PATH_INFO penggunaan
Jika anda mendayakan penggunaan PATH_INFO dalam gitweb dengan meletakkan

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

dalam fail konfigurasi gitweb anda, adalah mungkin untuk menyediakan pelayan anda supaya ia
menggunakan dan menghasilkan URL dalam bentuk

http://git.example.com/project.git/shortlog/sometag

iaitu tanpa gitweb.cgi bahagian, dengan menggunakan konfigurasi seperti berikut. ini
konfigurasi menganggap bahawa /var/www/gitweb ialah DocumentRoot pelayan web anda, mengandungi
skrip gitweb.cgi dan fail statik pelengkap (stylesheet, favicon, JavaScript):


ServerAlias ​​git.example.com

DocumentRoot /var/www/gitweb


Pilihan ExecCGI
AddHandler cgi-skrip cgi

DirectoryIndex gitweb.cgi

RewriteEngine On
% RewriteCond {REQUEST_FILENAME}!-F
RewriteCond% {REQUEST_FILENAME}!-D
RewriteRule ^.* /gitweb.cgi/$0 [L,PT]



Peraturan penulisan semula menjamin bahawa fail statik sedia ada akan disampaikan dengan betul, sedangkan
mana-mana URL lain akan dihantar ke gitweb sebagai parameter PATH_INFO.

Notis bahawa dalam kes ini anda tidak memerlukan tetapan khas untuk @stylesheets, $my_uri dan
$home_link, tetapi anda kehilangan akses "klien bodoh" ke dirs .git projek anda (diterangkan dalam
"URL tunggal untuk gitweb dan untuk mengambil" bahagian). Penyelesaian yang mungkin untuk yang terakhir ialah
yang berikut: dalam dir akar projek anda (cth /pub/git) mempunyai projek yang dinamakan tanpa a
sambungan .git (cth /pub/git/project bukan /pub/git/project.git) dan konfigurasikan
Apache seperti berikut:


ServerAlias ​​git.example.com

DocumentRoot /var/www/gitweb

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

Pilihan ExecCGI
AddHandler cgi-skrip cgi

DirectoryIndex gitweb.cgi

RewriteEngine On
% RewriteCond {REQUEST_FILENAME}!-F
RewriteCond% {REQUEST_FILENAME}!-D
RewriteRule ^.* /gitweb.cgi/$0 [L,PT]



AliasMatch tambahan menjadikannya begitu

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

akan memberikan akses mentah kepada dir Git projek (supaya projek itu boleh diklon), manakala

http://git.example.com/project

akan menyediakan akses gitweb mesra manusia.

Penyelesaian ini bukan kalis peluru 100%, dalam erti kata jika sesetengah projek mempunyai ref bernama
(cawangan, tag) bermula dengan git/, kemudian laluan seperti

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

akan gagal dengan ralat 404.

Gunakan gitweb dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    usm
    usm
    Usm adalah pakej slackware bersatu
    pengurus yang mengendalikan automatik
    resolusi pergantungan. Ia menyatukan
    pelbagai repositori pakej termasuk
    slackware, slacky, p...
    Muat turun usm
  • 2
    Chart.js
    Chart.js
    Chart.js ialah perpustakaan Javascript yang
    membolehkan pereka bentuk dan pembangun melukis
    semua jenis carta menggunakan HTML5
    elemen kanvas. Carta js menawarkan yang hebat
    tatasusunan...
    Muat turun Chart.js
  • 3
    iReport-Designer untuk JasperReports
    iReport-Designer untuk JasperReports
    NOTA: Sokongan iReport/Jaspersoft Studio
    Pengumuman: Mulai versi 5.5.0,
    Jaspersoft Studio akan menjadi rasmi
    pelanggan reka bentuk untuk JasperReports. iReport
    akan ...
    Muat turun iReport-Designer untuk JasperReports
  • 4
    PostInstallerF
    PostInstallerF
    PostInstallerF akan memasang semua
    perisian yang Fedora Linux dan lain-lain
    tidak termasuk secara lalai, selepas
    menjalankan Fedora buat kali pertama. Ianya
    senang untuk ...
    Muat turun PostInstallerF
  • 5
    helai
    helai
    Projek strace telah dipindahkan ke
    https://strace.io. strace is a
    diagnostik, penyahpepijatan dan pengajaran
    pengesan ruang pengguna untuk Linux. Ia telah diguna
    untuk memantau...
    Muat turun strace
  • 6
    gMKVExtractGUI
    gMKVExtractGUI
    GUI untuk utiliti mkvextract (sebahagian daripada
    MKVToolNix) yang menggabungkan kebanyakan (jika
    bukan semua) fungsi mkvextract dan
    utiliti mkvinfo. Ditulis dalam C#NET 4.0,...
    Muat turun gMKVExtractGUI
  • Lebih »

Arahan Linux

Ad