EngelsFransSpaans

Ad


OnWorks-favicon

gitweb - Online in de cloud

Voer gitweb uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht gitweb die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


gitweb - Git-webinterface (webfrontend naar Git-repository's)

KORTE INHOUD


Om aan de slag te gaan met gitweb, voer je uit git-instaweb(1) vanuit een Git-repository. Dit zou
configureer en start uw webserver, en voer een webbrowser uit die naar gitweb wijst.

PRODUCTBESCHRIJVING


Gitweb biedt een webinterface voor Git-repository's. De functies omvatten:

· Meerdere Git-opslagplaatsen met gemeenschappelijke root bekijken.

· Bladeren door elke revisie van de repository.

· Het bekijken van de inhoud van bestanden in de repository bij elke revisie.

· Bekijk het revisielogboek van takken, geschiedenis van bestanden en mappen, kijk wat er was
veranderd wanneer, door wie.

· Bekijk de schuld-/annotatiedetails van elk bestand (indien ingeschakeld).

· Het genereren van RSS- en Atom-feeds van commits, voor elke branche. De feeds zijn
automatisch vindbaar in moderne webbrowsers.

· Alles bekijken wat er in een revisie is veranderd, en de revisies één voor één doorlopen
tijd, waarbij u de geschiedenis van de repository bekijkt.

· Het vinden van commits waarvan de commit-berichten overeenkomen met de opgegeven zoekterm.

Bekijk http://git.kernel.org/?p=git/git.git;a=boom;f=gitweb or
http://repo.or.cz/w/git.git/tree/HEAD:/gitweb/ voor gitweb-broncode, gebladerd met behulp van
gitweb zelf.

CONFIGURATIE


Verschillende aspecten van het gedrag van gitweb kunnen worden beheerd via het configuratiebestand
gitweb_config.perl or /etc/gitweb.conf. Zie het gitweb.conf(5) voor details.

Vindplaatsen
Gitweb kan informatie uit een of meer Git-repository's tonen. Deze opslagplaatsen moeten dat wel doen
moeten allemaal op het lokale bestandssysteem staan, en moeten de gemeenschappelijke root van de repository delen, dat wil zeggen dat ze allemaal onder a moeten staan
een enkele bovenliggende repository (maar zie ook de sectie "Geavanceerde webserverinstellingen", "Webserver
configuratie met de root-subsectie van meerdere projecten).

onze $projectroot = '/pad/naar/ouder/map';

De standaardwaarde voor $projectroot is /pub/git. Je kunt dit wijzigen tijdens het bouwen van gitweb
via GITWEB_PROJECTROOT build-configuratievariabele.

Standaard zijn alle Git-repository's onder $projectroot zichtbaar en beschikbaar voor gitweb.
De lijst met projecten wordt standaard gegenereerd door de map $projectroot te scannen
Git-repository's (voor objectdatabases om precies te zijn; gitweb is niet geïnteresseerd in een
werkgebied, en is het meest geschikt voor het weergeven van "kale" repository's).

De naam van de repository in gitweb is het pad naar zijn $GIT_DIR (zijn objectdatabase)
relatief ten opzichte van $projectroot. Daarom is de repository $repo te vinden op
"$projectroot/$repo".

Projecten lijst filet formaat
In plaats van gitweb repository's te laten vinden door het bestandssysteem te scannen vanaf
$projectroot, u kunt een vooraf gegenereerde lijst met zichtbare projecten opgeven door setting
$projects_list om naar een tekstbestand zonder opmaak te verwijzen met een lijst met projecten (met enkele extra
informatie).

Dit bestand gebruikt het volgende formaat:

· Eén record (voor project/repository) per regel; ondersteunt geen lijnvoortzetting
(nieuwe regel ontsnapt).

· Voorloop- en volgspaties worden genegeerd.

· Witruimte gescheiden velden; elke witruimte kan als veldscheidingsteken worden gebruikt
(regels voor Perl's "split(" ", $line)").

· Velden gebruiken aangepaste URI-codering, gedefinieerd in RFC 3986, sectie 2.1 (Percentage-codering),
of liever "Querystring-codering" (zie
http://en.wikipedia.org/wiki/Query_string#URL_codering), met het verschil dat SP
(" ") kan worden gecodeerd als "+" (en daarom moet "+" ook procentgecodeerd zijn).

Gereserveerde tekens zijn: "%" (gebruikt voor codering), "+" (kan worden gebruikt om SPACE te coderen),
alle witruimtetekens zoals gedefinieerd in Perl, inclusief SP, TAB en LF, (vroeger
afzonderlijke velden in een record).

· Momenteel erkende velden zijn:


pad naar repository GIT_DIR, relatief ten opzichte van $projectroot


weergegeven als eigenaar van de repository, bij voorkeur volledige naam, of e-mailadres, of beide

U kunt het indexbestand van de projectenlijst genereren met behulp van de actie project_index (de TXT link
op de projectenlijstpagina) rechtstreeks vanuit gitweb; zie ook "Projectenlijst genereren met behulp van
gitweb" sectie hieronder.

Voorbeeld inhoud:

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

Standaard bepaalt dit bestand alleen welke projecten dat zijn zichtbaar op de projectenlijstpagina (opmerking
dat items die niet verwijzen naar correct herkende Git-repository's niet zullen worden weergegeven
door gitweb). Zelfs als een project niet zichtbaar is op de projectenlijstpagina, kunt u het bekijken
niettemin door met de hand een gitweb-URL te maken. Door de configuratie $strict_export in te stellen
variabel (zie gitweb.conf(5)) naar de werkelijke waarde kunt u alleen de weergave van opslagplaatsen toestaan
wordt ook getoond op de overzichtspagina (dwz alleen projecten die expliciet in de projectenlijst staan ​​vermeld).
bestand toegankelijk zal zijn).

Het genereren van projecten lijst gebruik gitweb
We gaan ervan uit dat GITWEB_CONFIG zijn standaard Makefile-waarde heeft, namelijk gitweb_config.perl.
Zet het volgende erin gitweb_make_index.perl file:

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

Maak vervolgens het volgende script om een ​​lijst met projecten te krijgen in het geschikte formaat
GITWEB_LIST build configuratievariabele (of $projects_list variabele in gitweb configuratie):

#!/ Bin / sh

export GITWEB_CONFIG="gitweb_make_index.perl"
export GATEWAY_INTERFACE="CGI/1.1"
exporteer HTTP_ACCEPT="*/*"
export REQUEST_METHOD="KRIJGEN"
export QUERY_STRING="a=project_index"

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

Voer dit script uit en sla de uitvoer ervan op in een bestand. Dit bestand kan vervolgens als projecten worden gebruikt
list-bestand, wat betekent dat u $projects_list kunt instellen op de bestandsnaam.

Controlling toegang naar Git repositories
Standaard zijn alle Git-repository's onder $projectroot zichtbaar en beschikbaar voor gitweb.
Je kunt echter configureren hoe gitweb de toegang tot repositories controleert.

· Zoals beschreven in de sectie "Bestandsformaat projectlijst", kunt u bepalen welke projecten
zijn zichtbaar door selectief repository's op te nemen in het projectenlijstbestand en door instellingen in te stellen
$projects_list gitweb configuratievariabele om ernaar te verwijzen. Met $strict_export ingesteld,
projectenlijstbestand kan worden gebruikt om te bepalen welke repository's er zijn Beschikbaar .

· Je kunt gitweb configureren om alleen de expliciet geëxporteerde bestanden weer te geven en te bekijken
repositories, via $export_ok variabele in gitweb configuratiebestand; zien gitweb.conf(5)
manpagina. Als het resulteert in true, toont gitweb alleen repository's als dit bestand de naam by
$export_ok bestaat in de objectdatabase (als de map het magische bestand met de naam
$export_ok).

Bij voorbeeld git-daemon(1) is standaard toegestaan ​​(tenzij de optie --export-all wordt gebruikt).
alleen trekken voor de repository's die dat wel hebben git-daemon-export-ok bestand. Toevoegen

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

zorgt ervoor dat gitweb alleen toegang toont en toestaat tot die repository's waaruit kan worden opgehaald
via git://-protocol.

· Ten slotte is het mogelijk om een ​​willekeurige perl-subroutine te specificeren die zal worden aangeroepen
voor elke repository om te bepalen of deze kan worden geëxporteerd. De subroutine ontvangt een
absoluut pad naar het project (repository) als enige parameter (bijv
"$projectroot/$project").

Als u bijvoorbeeld mod_perl gebruikt om het script uit te voeren en een dom HTTP-protocol heeft
authenticatie geconfigureerd voor uw repository's, kunt u de volgende hook gebruiken
alleen toegang toestaan ​​als de gebruiker geautoriseerd is om de bestanden te lezen:

$export_auth_hook = sub {
gebruik Apache2::SubRequest ();
gebruik Apache2::Const -compile => qw(HTTP_OK);
mijn $pad = "$_[0]/HEAD";
mijn $r = Apache2::RequestUtil->verzoek;
mijn $sub = $r->lookup_file($path);
return $sub->bestandsnaam eq $pad
&& $sub->status == Apache2::Const::HTTP_OK;
};

Per opslagplaats gitweb configuratie
Je kunt individuele repository's configureren die in gitweb worden weergegeven door een bestand te maken in de GIT_DIR
van Git repository, of door een repo-configuratievariabele in te stellen (in GIT_DIR/config, Zie
git-config(1)).

U kunt de volgende bestanden in de repository gebruiken:

README.html
Een HTML-bestand (HTML-fragment) dat is opgenomen op de "samenvatting"-pagina van het gitweb-project
binnen blok-element. U kunt het gebruiken voor een langere beschrijving van een project
links aanbieden (bijvoorbeeld naar de startpagina van het project), enz. Dit wordt alleen herkend als XSS
preventie is uitgeschakeld ($prevent_xss is false, zie gitweb.conf(5)); een manier om a
Veilig README wanneer XSS-preventie is ingeschakeld, kan in de toekomst worden uitgewerkt.

beschrijving (of gitweb.description)
Kort (afgekort tot $projects_list_description_width op de projectenlijstpagina, welke
is standaard 25 tekens; zien gitweb.conf(5)) enkele regelbeschrijving van een project
(van een opslagplaats). Gewoon tekstbestand; HTML wordt geëscaped. Standaard ingesteld op

Naamloze repository; bewerk dit bestand om het een naam te geven voor gitweb.

van de sjabloon tijdens het maken van de repository, meestal geïnstalleerd in
/usr/share/git-core/templates/. Je kunt de gitweb.description repo-configuratie gebruiken
variabele, maar het bestand heeft voorrang.

categorie (of gitweb.category)
Afzonderlijke lijncategorie van een project, gebruikt om projecten te groeperen als
$projects_list_group_categories is ingeschakeld. Standaard (bestand en configuratie
variabele afwezig), worden niet-gecategoriseerde projecten in de $project_list_default_category geplaatst
categorie. Je kunt de gitweb.category repo-configuratievariabele gebruiken, maar het bestand file
heeft voorrang.

De configuratievariabelen $projects_list_group_categories en
$project_list_default_category worden beschreven in gitweb.conf(5)

cloneurl (of gitweb.url met meerdere waarden)
Bestand met repository-URL (gebruikt voor klonen en ophalen), één per regel. Weergegeven in de
projectoverzichtspagina. Je kunt een gitweb.url repositoryconfiguratie met meerdere waarden gebruiken
variabele daarvoor, maar het bestand heeft voorrang.

Dit is een verbetering per repository/versie van het globale prefix-gebaseerde @git_base_url_list
gitweb configuratievariabele (zie gitweb.conf(5)).

gitweb.eigenaar
Je kunt de gitweb.owner repository configuratievariabele gebruiken om repository's in te stellen
eigenaar. Het wordt weergegeven op de projectlijst en de overzichtspagina.

Als dit niet is ingesteld, wordt de eigenaar van de bestandssysteemmap gebruikt (via het GECOS-veld, dwz echte naam
veld van krijgpwuid(3)) als $projects_list niet is ingesteld (gitweb scant $projectroot op
opslagplaatsen); als $projects_list verwijst naar een bestand met een lijst met repository's, dan
projecteigenaar gebruikt standaard de waarde uit dit bestand voor een bepaalde repository.

verschillende gitweb.* configuratievariabelen (in config)
Lees de beschrijving van %feature-hash voor een gedetailleerde lijst en beschrijvingen. Zie ook
"Gitweb-functies configureren" sectie in gitweb.conf(5)

ACTIES, EN URL'S


Gitweb kan op path_info (component) gebaseerde URL's gebruiken, of het kan alle noodzakelijke informatie doorgeven
via queryparameters. De typische gitweb-URL's zijn onderverdeeld in vijf componenten:

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

repo
De repository waarop de actie wordt uitgevoerd.

Alle acties behalve de acties die alle beschikbare projecten vermelden, in welke vorm dan ook,
deze parameter nodig hebben.

actie
De actie die wordt uitgevoerd. Standaard ingesteld op projecten_lijst als repository niet is ingesteld, en naar
beknopte versie anders.

herziening
Revisie getoond. Standaard ingesteld op HOOFD.

pad
Het pad binnen de waarop de actie wordt uitgevoerd, voor die acties
die dit vereisen.

argumenten
Alle argumenten die het gedrag van de actie bepalen.

Sommige acties vereisen of maken het mogelijk om twee revisies op te geven, en soms zelfs twee padnamen.
In de meeste algemene vorm ziet een dergelijke op path_info (component) gebaseerde gitweb-URL er als volgt uit:

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

Elke actie wordt geïmplementeerd als een subroutine en moet aanwezig zijn in de %action-hash. Sommige
acties zijn standaard uitgeschakeld en moeten worden ingeschakeld via het functiemechanisme. Bijvoorbeeld
in staat te stellen schuld view voeg het volgende toe aan het gitweb-configuratiebestand:

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

Acties:
De standaardacties zijn:

project_lijst
Geeft een overzicht van de beschikbare Git-opslagplaatsen. Dit is de standaardopdracht als er geen repository is
opgegeven in de URL.

beknopte versie
Geeft een samenvatting weer van de gegeven repository. Dit is de standaardopdracht als er geen actie plaatsvindt
opgegeven in URL, en alleen de repository is opgegeven.

hoofden, afstandsbedieningen
Geeft een overzicht van alle lokale of alle externe trackingtakken in een bepaalde repository.

Dit laatste is standaard niet beschikbaar, tenzij geconfigureerd.

labels
Maak een lijst van alle tags (lichtgewicht en geannoteerd) in een bepaalde repository.

bol, boom
Toont de bestanden en mappen in een bepaald repositorypad, bij een bepaalde revisie. Dit is
standaardopdracht als er geen actie is opgegeven in de URL en er een pad is opgegeven.

blob_plain
Retourneert de onbewerkte gegevens voor het bestand in een bepaalde repository, op een gegeven pad en revisie.
Links naar deze actie zijn gemarkeerd rauw.

blobdiff
Toont het verschil tussen twee revisies van hetzelfde bestand.

schuld, schuld_incrementeel
Toont de schuldinformatie (ook wel annotatie genoemd) voor een bestand. Per lijn
het toont de revisie waarin die regel voor het laatst is gewijzigd en de gebruiker die deze heeft vastgelegd
de verandering. De incrementele versie (die, indien geconfigureerd, automatisch wordt gebruikt wanneer
JavaScript is ingeschakeld) gebruikt Ajax om stapsgewijs schuldinformatie toe te voegen aan de inhoud van
gegeven bestand.

Deze actie is standaard uitgeschakeld vanwege prestatieredenen.

commit, commitdiff
Toont informatie over een specifieke commit in een repository. De plegen shows bekijken
informatie over commit in meer detail, de opdrachtgever actie toont wijzigingenset voor
gegeven toezegging.

stuk
Retourneert de commit in platte tekst mailformaat, geschikt om mee te solliciteren git-am(1).

label
Geef een specifieke geannoteerde tag weer (tagobject).

log, kortlog
Toont loginformatie (commit-bericht of alleen commit-onderwerp) voor een bepaalde vertakking
(vanaf de gegeven revisie).

De tekort weergave is compacter; het toont één commit per regel.

geschiedenis
Toont de geschiedenis van het bestand of de map in een bepaald repositorypad, beginnend bij gegeven
revisie (standaard ingesteld op HEAD, dwz standaardvertakking).

Deze visie is vergelijkbaar met tekort uitzicht.

rss, atoom
Genereert een RSS- (of Atom-)feed van wijzigingen in de repository.

WEB SERVER CONFIGURATIE


In deze sectie wordt uitgelegd hoe je enkele algemene webservers kunt configureren om gitweb uit te voeren. In alle gevallen,
/path/to/gitweb in de voorbeelden is de directory waarin je gitweb hebt geïnstalleerd, en bevat
gitweb_config.perl.

Als je een webserver hebt geconfigureerd die hier niet voor gitweb wordt vermeld, stuur dan het
instructies zodat ze kunnen worden opgenomen in een toekomstige release.

apache as CGI
Apache moet worden geconfigureerd om CGI-scripts te ondersteunen in de map waarin gitweb zich bevindt
geïnstalleerd. Laten we aannemen dat dit zo is /var/www/cgi-bin directory.

Scriptalias /cgi-bin/ "/var/www/cgi-bin/"


Opties Indexen VolgSymlinks ExecCGI
AllowOverride Geen
Bestelling toestaan, ontkennen
Toestaan ​​van alle


Met die configuratie zou het volledige pad om door repository's te bladeren zijn:

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

apache Met mod_perl, via ModPerl::Register
Je kunt mod_perl gebruiken met gitweb. U moet Apache::Registry (voor mod_perl 1.x) of
ModPerl::Registry (voor mod_perl 2.x) om deze ondersteuning in te schakelen.

Ervan uitgaande dat gitweb is geïnstalleerd op /var/www/perl, de volgende Apache-configuratie
(voor mod_perl 2.x) is geschikt.

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


SetHandler perl-script
PerlResponseHandler ModPerl::Register
PerlOptions +ParseHeaders
Opties Indexen VolgSymlinks +ExecCGI
AllowOverride Geen
Bestelling toestaan, ontkennen
Toestaan ​​van alle


Met die configuratie zou het volledige pad om door repository's te bladeren zijn:

http://server/perl/gitweb.cgi

apache Met FastCGI
Gitweb werkt met Apache en FastCGI. Eerst moet je gitweb.cgi hernoemen, kopiëren of symboliseren
naar gitweb.fcgi. Laten we aannemen dat gitweb is geïnstalleerd /usr/share/gitweb directory. De
volgende Apache-configuratie is geschikt (NIET GETEST!)

FastCgiServer /usr/share/gitweb/gitweb.cgi
Scriptalias /gitweb /usr/share/gitweb/gitweb.cgi

Alias ​​/gitweb/static /usr/share/gitweb/static
<Directory /usr/share/gitweb/static>
SetHandler standaardhandler


Met die configuratie zou het volledige pad om door repository's te bladeren zijn:

http://server/gitweb

ADVANCED WEB SERVER ORGANISATIE


Al deze voorbeelden maken gebruik van request rewriting en hebben mod_rewrite nodig (of gelijkwaardig; example
hieronder zijn geschreven voor Apache).

Enkele URL For gitweb en For ophalen
Als je één URL wilt hebben voor zowel gitweb als je http:// repositories, dan kan dat
configureer Apache als volgt:


Servernaam git.voorbeeld.org
DocumentRoot /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf

# mod herschrijven aanzetten
RewriteEngine on

# maak van de voorpagina een interne herschrijving van het gitweb-script
RewriteRule ^/$ /cgi-bin/gitweb.cgi

# maak toegang voor het werk van "domme klanten".
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objecten|refs)).*)?$ \
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]


De bovenstaande configuratie verwacht dat uw openbare repository's onder de definitie zullen vallen /pub/git en wil
serveer ze als http://git.domain.org/dir-under-pub-git, zowel als kloonbare Git-URL en als
doorbladerbare gitweb-interface. Als u vervolgens uw git-daemon(1) met
--base-path=/pub/git --export-all dan kun je zelfs de git:// URL gebruiken met precies de
hetzelfde pad.

Het instellen van de omgevingsvariabele GITWEB_CONFIG zal gitweb vertellen om het genoemde bestand te gebruiken
(dat wil zeggen in dit voorbeeld /etc/gitweb.conf) als configuratie voor gitweb. Dat doe je niet echt
heb het nodig in het bovenstaande voorbeeld; het is alleen vereist als uw configuratiebestand zich in een ander bestand bevindt
plaats dan ingebouwd (tijdens het compileren van gitweb) gitweb_config.perl or /etc/gitweb.conf. Zien
gitweb.conf(5) voor details, vooral informatie over voorrangsregels.

Als u de herschrijfregels uit het voorbeeld gebruikt, kunt u macht heb ook zoiets nodig als de
volgt in je gitweb-configuratiebestand (/etc/gitweb.conf volgend voorbeeld):

@stylesheets = ("/enkele/absolute/pad/gitweb.css");
$mijn_uri = "/";
$home_link = "/";
$per_request_config = 1;

Tegenwoordig zou gitweb echter indien nodig een HTML-basistag moeten maken (om de basis-URI in te stellen voor
relatieve links), dus het zou automatisch moeten werken.

webserver configuratie Met meervoudig projecten' wortel
Als je gitweb met meerdere projectroots wilt gebruiken, kun je je virtuele Apache-host bewerken
en gitweb-configuratiebestanden op de volgende manier.

De virtuele hostconfiguratie (in het Apache-configuratiebestand) zou er als volgt uit moeten zien:


Servernaam git.voorbeeld.org
DocumentRoot /pub/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf

# mod herschrijven aanzetten
RewriteEngine on

# maak van de voorpagina een interne herschrijving van het gitweb-script
Regel herschrijven ^/$ /cgi-bin/gitweb.cgi [QSA,L,PT]

# zoek naar een public_git map in de homepagina van Unix-gebruikers
# http://git.example.org/~ /
RewriteRule ^/\~([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/huis/$1/public_git/,L,PT]

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

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

# gedefinieerde lijst met projectwortels
RewriteRule ^/scm(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOOT:/pub/scm/,L,PT]
Herschrijfregel ^/ var(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi \
[QSA,E=GITWEB_PROJECTROOT:/var/git/,L,PT]

# maak toegang voor het werk van "domme klanten".
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objecten|refs)).*)?$ \
/cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]


Hier wordt de daadwerkelijke projectroot doorgegeven aan gitweb via de omgevingsvariabele GITWEB_PROJECT_ROOT
vanaf een webserver, dus je moet de volgende regel in het gitweb-configuratiebestand plaatsen
(/etc/gitweb.conf in bovenstaand voorbeeld):

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

Note dat dit voor elk verzoek moet worden ingesteld, dus $per_request_config moet dat zijn
false, of het bovenstaande moet in code worden geplaatst waarnaar wordt verwezen door $per_request_config;

Deze configuraties maken twee dingen mogelijk. Ten eerste moet elke Unix-gebruiker ( ) van de server wel
in staat zijn om door gitweb Git-repository's te bladeren die te vinden zijn in ~/public_git/ met de
volgende URL:

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

Als u deze functie niet op uw server wilt, verwijdert u gewoon de tweede herschrijfregel.

Als u 'mod_userdir` al gebruikt in uw virtuele host of als u de '~' niet wilt gebruiken als
eerste teken, becommentarieer of verwijder de tweede herschrijfregel en verwijder het commentaar van een van de
volgen volgens wat je wilt.

Ten tweede zijn er opslagplaatsen gevonden in /pub/scm/ en /var/git/ zal toegankelijk zijn via
http://git.example.org/scm/ en http://git.example.org/var/. U kunt zoveel projecten toevoegen
wortels zoals je wilt door herschrijfregels toe te voegen, zoals de derde en de vierde.

PATH_INFO gebruik
Als je het gebruik van PATH_INFO in gitweb inschakelt door putting

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

in je gitweb-configuratiebestand is het mogelijk om je server zo in te stellen dat deze
verbruikt en produceert URL's in het formulier

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

dat wil zeggen zonder gitweb.cgi onderdeel, door een configuratie zoals de volgende te gebruiken. Dit
configuratie gaat ervan uit dat /var/www/gitweb is de DocumentRoot van uw webserver, bevat
het gitweb.cgi-script en aanvullende statische bestanden (stylesheet, favicon, JavaScript):


ServerAlias ​​git.voorbeeld.com

DocumentRoot /var/www/gitweb


Opties ExecCGI
AddHandler cgi-script cgi

DirectoryIndex gitweb.cgi

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



De herschrijfregel garandeert dat bestaande statische bestanden correct worden weergegeven, terwijl
elke andere URL zal als PATH_INFO parameter aan gitweb worden doorgegeven.

Opmerken dat je in dit geval geen speciale instellingen nodig hebt voor @stylesheets, $my_uri en
$home_link, maar je verliest "domme client"-toegang tot de .git-dirs van je project (beschreven in
"Enkele URL voor gitweb en voor ophalen" sectie). Een mogelijke oplossing voor dit laatste is
het volgende: in de hoofdmap van uw project (bijv /pub/git) hebben de projecten een naam zonder a
.git-extensie (bijv /pub/git/project in plaats van /pub/git/project.git) en configureren
Apache als volgt:


ServerAlias ​​git.voorbeeld.com

DocumentRoot /var/www/gitweb

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

Opties ExecCGI
AddHandler cgi-script cgi

DirectoryIndex gitweb.cgi

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



De extra AliasMatch zorgt ervoor dat dat zo is

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

geeft onbewerkte toegang tot de Git-map van het project (zodat het project kan worden gekloond), while

http://git.example.com/project

zal mensvriendelijke gitweb-toegang bieden.

Deze oplossing is niet 100% kogelvrij, in die zin dat als een project een benoemde ref
(tak, tag) beginnend met git/, dan paden zoals

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

mislukt met een 404-fout.

Gebruik gitweb online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    ons
    ons
    Usm is een verenigd slackwarepakket
    manager die automatisch afhandelt
    afhankelijkheid resolutie. Het verenigt
    verschillende pakketrepository's, waaronder
    slackware, slacky, p...
    usm downloaden
  • 2
    Chart.js
    Chart.js
    Chart.js is een Javascript-bibliotheek die
    stelt ontwerpers en ontwikkelaars in staat om te tekenen
    allerlei grafieken met behulp van de HTML5
    canvas-element. Chart js biedt een geweldige
    reeks ...
    Chart.js downloaden
  • 3
    iReport-Designer voor JasperReports
    iReport-Designer voor JasperReports
    OPMERKING: iReport/Jaspersoft Studio-ondersteuning
    Aankondiging: vanaf versie 5.5.0,
    Jaspersoft Studio zal de officiële zijn
    ontwerpclient voor JasperReports. ik rapporteer
    zullen...
    Download iReport-Designer voor JasperReports
  • 4
    PostInstallerF
    PostInstallerF
    PostInstallerF zal alle
    software die Fedora Linux en anderen
    omvat niet standaard, na
    Fedora voor het eerst draaien. Zijn
    makkelijk voor...
    PostInstallerF downloaden
  • 5
    spoor
    spoor
    Het strace-project is verplaatst naar
    https://strace.io. strace is a
    diagnostisch, foutopsporing en instructie
    gebruikersruimte tracer voor Linux. Het is gebruikt
    bewaken van een...
    Strace downloaden
  • 6
    gMKV GUI uitpakken
    gMKV GUI uitpakken
    Een GUI voor het hulpprogramma mkvextract (onderdeel van
    MKVToolNix) die de meeste (if
    niet alle) functionaliteit van mkvextract en
    mkvinfo-hulpprogramma's. Geschreven in C#NET 4.0,...
    GMKVExtractGUI downloaden
  • Meer "

Linux-commando's

Ad