Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
-
2.52.0
2025-11-17
- 2.50.1 → 2.51.2 keine Änderungen
-
2.50.0
2025-06-16
- 2.44.1 → 2.49.1 keine Änderungen
-
2.44.0
2024-02-23
- 2.43.2 → 2.43.7 keine Änderungen
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.32.1 → 2.42.4 keine Änderungen
-
2.32.0
2021-06-06
- 2.24.1 → 2.31.8 keine Änderungen
-
2.24.0
2019-11-04
- 2.22.1 → 2.23.4 keine Änderungen
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 keine Änderungen
-
2.21.0
2019-02-24
- 2.19.3 → 2.20.5 keine Änderungen
-
2.19.2
2018-11-21
- 2.14.6 → 2.19.1 keine Änderungen
-
2.13.7
2018-05-22
- 2.12.5 keine Änderungen
-
2.11.4
2017-09-22
- 2.10.5 keine Änderungen
-
2.9.5
2017-07-30
- 2.6.7 → 2.8.6 keine Änderungen
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
- 2.2.3 keine Änderungen
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
BESCHREIBUNG
Das gitweb CGI-Skript zur Anzeige von Git-Repositories über das Web verwendet ein Perl-Skriptfragment als Konfigurationsdatei. Sie können Variablen mit "our $variable = value" setzen; Text ab einem "#"-Zeichen bis zum Ende einer Zeile wird ignoriert. Details finden Sie in perlsyn(1).
Ein Beispiel
# gitweb configuration file for http://git.example.org # our $projectroot = "/srv/git"; # FHS recommendation our $site_name = 'Example.org >> Repos';
Die Konfigurationsdatei wird verwendet, um die Standardeinstellungen zu überschreiben, die zum Zeitpunkt der Generierung des gitweb.cgi-Skripts in Gitweb eingebaut wurden.
Obwohl man die Konfigurationseinstellungen direkt im gitweb CGI ändern könnte, gingen diese Änderungen bei einem Upgrade verloren. Konfigurationseinstellungen können auch in eine Datei im selben Verzeichnis wie das CGI-Skript mit dem Standardnamen gitweb_config.perl platziert werden – was es ermöglicht, mehrere Gitweb-Instanzen mit unterschiedlichen Konfigurationen durch die Verwendung von Symlinks zu haben.
Beachten Sie, dass einige Konfigurationen pro Repository und nicht global für Gitweb gesteuert werden können: siehe Unterabschnitt "Per-Repository-Gitweb-Konfiguration" in der Manpage gitweb[1].
DISKUSSION
Gitweb liest Konfigurationsdaten aus den folgenden Quellen in der folgenden Reihenfolge
-
eingebaute Werte (einige während der Build-Phase gesetzt),
-
globale Systemkonfigurationsdatei (Standard ist
/etc/gitweb-common.conf), -
entweder Instanzspezifische Konfigurationsdatei (Standard ist gitweb_config.perl im selben Verzeichnis wie das installierte Gitweb) oder, falls diese nicht existiert, eine fallweise globale Systemkonfigurationsdatei (Standard ist
/etc/gitweb.conf).
Werte, die in späteren Konfigurationsdateien erzielt werden, überschreiben Werte, die früher in der obigen Sequenz erzielt wurden.
Die Speicherorte der globalen Systemkonfigurationsdatei, der fallweisen globalen Systemkonfigurationsdatei und der instanzspezifischen Konfigurationsdatei werden zur Kompilierzeit mit Build-Zeit-Makefile-Konfigurationsvariablen definiert, nämlich GITWEB_CONFIG_COMMON, GITWEB_CONFIG_SYSTEM und GITWEB_CONFIG.
Sie können auch die Speicherorte von Gitweb-Konfigurationsdateien zur Laufzeit überschreiben, indem Sie die folgenden Umgebungsvariablen setzen: GITWEB_CONFIG_COMMON, GITWEB_CONFIG_SYSTEM und GITWEB_CONFIG auf einen nicht-leeren Wert.
Die Syntax der Konfigurationsdateien ist die von Perl, da diese Dateien behandelt werden, indem sie als Fragmente von Perl-Code (der Sprache, in der Gitweb selbst geschrieben ist) gesourced werden. Variablen werden typischerweise mit dem our-Qualifikator gesetzt (wie in "our $variable = <value>;"), um Syntaxfehler zu vermeiden, falls eine neue Version von Gitweb eine Variable nicht mehr verwendet und sie daher nicht mehr deklariert.
Sie können andere Konfigurationsdateien mit der Unterroutine read_config_file() einbinden. Zum Beispiel könnte man Gitweb-Konfigurationen, die sich auf die Zugriffskontrolle für die Anzeige von Repositories über Gitolite (eines der Git-Repository-Management-Tools) beziehen, in eine separate Datei legen, z.B. in /etc/gitweb-gitolite.conf. Um sie einzubinden, fügen Sie hinzu:
read_config_file("/etc/gitweb-gitolite.conf");
irgendwo in der verwendeten Gitweb-Konfigurationsdatei, z.B. in der Gitweb-Konfigurationsdatei pro Installation. Beachten Sie, dass read_config_file() selbst prüft, ob die zu lesende Datei existiert, und nichts tut, wenn sie nicht gefunden wird. Sie behandelt auch Fehler in der eingebundenen Datei.
Die Standardkonfiguration ohne jegliche Konfigurationsdatei funktioniert für einige Installationen möglicherweise einwandfrei. Dennoch ist eine Konfigurationsdatei nützlich, um das Verhalten von Gitweb auf vielfältige Weise anzupassen oder zu optimieren, und einige optionale Funktionen sind nicht vorhanden, es sei denn, sie werden explizit über die konfigurierbare Variable %features aktiviert (siehe auch den Abschnitt "Konfigurieren von Gitweb-Funktionen" unten).
KONFIGURATION VARIABLEN
Einige Konfigurationsvariablen haben ihre Standardwerte (im CGI-Skript eingebettet), die während des Baus von Gitweb gesetzt werden – wenn dies der Fall ist, wird dies in ihrer Beschreibung erwähnt. Siehe die Datei INSTALL von Gitweb für Anweisungen zum Bauen und Installieren von Gitweb.
Speicherort der Repositories
Die unten beschriebenen Konfigurationsvariablen steuern, wie Gitweb Git-Repositories findet und wie Repositories angezeigt und zugegriffen werden.
Siehe auch die Abschnitte "Repositories" und folgende Unterabschnitte in der Manpage gitweb[1].
- $projectroot
-
Absoluter Dateisystempfad, der dem Projektpfad vorangestellt wird; der Pfad zum Repository ist
$projectroot/$project. Wird bei der Installation auf$GITWEB_PROJECTROOTgesetzt. Diese Variable muss korrekt gesetzt sein, damit Gitweb Repositories finden kann.Wenn beispielsweise
$projectrootmit "/srv/git" gesetzt wird, indem Folgendes in die Gitweb-Konfigurationsdatei geschrieben wirdour $projectroot = "/srv/git";
dann
http://git.example.com/gitweb.cgi?p=foo/bar.git
und seine Path_Info-basierte Entsprechung
http://git.example.com/gitweb.cgi/foo/bar.git
wird auf dem Dateisystem auf den Pfad
/srv/git/foo/bar.gitabgebildet. - $projects_list
-
Name einer einfachen Textdatei, die Projekte auflistet, oder der Name eines Verzeichnisses, das nach Projekten gescannt werden soll.
Projektlistendateien sollten ein Projekt pro Zeile auflisten, wobei jede Zeile das folgende Format hat
<URI-encoded filesystem path to repository> SP <URI-encoded repository owner>
Der Standardwert dieser Variablen wird durch die Makefile-Variable
GITWEB_LISTzur Installationszeit bestimmt. Wenn diese Variable leer ist, greift Gitweb auf das Scannen des Verzeichnisses$projectrootnach Repositories zurück. - $project_maxdepth
-
Wenn die Variable
$projects_listnicht gesetzt ist, scannt Gitweb das Dateisystem rekursiv nach Git-Repositories. Die Variable$project_maxdepthwird verwendet, um die Traversierungstiefe relativ zu$projectroot(Ausgangspunkt) zu begrenzen; das bedeutet, dass Verzeichnisse, die weiter von$projectrootentfernt sind als$project_maxdepth, übersprungen werden.Dies ist eine reine Performance-Optimierung, ursprünglich für MacOS X gedacht, wo die rekursive Verzeichnisdurchsuchung langsam ist. Gitweb folgt symbolischen Links, erkennt aber Zyklen und ignoriert doppelte Dateien und Verzeichnisse.
Der Standardwert dieser Variablen wird durch die Build-Zeit-Konfigurationsvariable
GITWEB_PROJECT_MAXDEPTHbestimmt, die standardmäßig auf 2007 gesetzt ist. - $export_ok
-
Repository nur anzeigen, wenn diese Datei existiert (im Repository). Nur wirksam, wenn diese Variable auf wahr ausgewertet wird. Kann beim Bauen von Gitweb durch Setzen von
GITWEB_EXPORT_OKgesetzt werden. Dieser Pfad ist relativ zuGIT_DIR. git-daemon[1] verwendet git-daemon-export-ok, es sei denn, es wird mit--export-allgestartet. Standardmäßig ist diese Variable nicht gesetzt, was bedeutet, dass diese Funktion ausgeschaltet ist. - $export_auth_hook
-
Funktion, die verwendet wird, um zu bestimmen, welche Repositories angezeigt werden sollen. Diese Unterroutine sollte einen Parameter erhalten, den vollständigen Pfad zu einem Projekt, und wenn sie wahr zurückgibt, wird dieses Projekt in die Projektliste aufgenommen und kann über Gitweb zugegriffen werden, solange es die anderen Anforderungen erfüllt, die von $export_ok, $projects_list und $projects_maxdepth beschrieben werden. Beispiel
our $export_auth_hook = sub { return -e "$_[0]/git-daemon-export-ok"; };obwohl das oben Genannte auch durch die Verwendung von
$export_okerreicht werden könnteour $export_ok = "git-daemon-export-ok";
Wenn nicht gesetzt (Standard), bedeutet dies, dass diese Funktion deaktiviert ist.
Siehe auch ein komplexeres Beispiel im Unterabschnitt "Steuerung des Zugriffs auf Git-Repositories" in der Manpage gitweb[1].
- $strict_export
-
Nur die Anzeige von Repositories erlauben, die auch auf der Übersichtsseite angezeigt werden. Dies bewirkt beispielsweise, dass die Datei
$export_okentscheidet, ob ein Repository verfügbar ist und nicht nur, ob es angezeigt wird. Wenn$projects_listauf eine Datei mit einer Projektliste verweist, wären nur die dort aufgeführten Repositories für Gitweb verfügbar. Kann während des Baus von Gitweb überGITWEB_STRICT_EXPORTgesetzt werden. Standardmäßig ist diese Variable nicht gesetzt, was bedeutet, dass Sie direkt auf die Repositories zugreifen können, die von der Projektlistenseite ausgeblendet sind (z.B. sind sie nicht in der Datei $projects_list aufgeführt).
Dateien finden
Die folgenden Konfigurationsvariablen teilen Gitweb mit, wo Dateien zu finden sind. Die Werte dieser Variablen sind Pfade auf dem Dateisystem.
- $GIT
-
Kern-Git-Executable, das verwendet werden soll. Standardmäßig auf
$GIT_BINDIR/gitgesetzt, was wiederum standardmäßig auf$(bindir)/gitgesetzt ist. Wenn Sie Git aus einem Binärpaket installiert haben, sollten Sie dies normalerweise auf "/usr/bin/git" setzen. Dies kann auch einfach "git" sein, wenn Ihr Webserver einen sinnvollen PATH hat; aus Sicherheitssicht ist es besser, den absoluten Pfad zur Git-Binärdatei zu verwenden. Wenn Sie mehrere Git-Versionen installiert haben, kann dies verwendet werden, um zu wählen, welche verwendet werden soll. Muss (korrekt) gesetzt sein, damit Gitweb funktionieren kann. - $mimetypes_file
-
Datei, die für (anhand der Dateiendung basierende) MIME-Typ-Schätzungen verwendet wird, bevor /etc/mime.types versucht wird. **HINWEIS**: Dieser Pfad wird, falls relativ, als relativ zum aktuellen Git-Repository und nicht zum CGI-Skript interpretiert. Wenn nicht gesetzt, wird nur
/etc/mime.typesverwendet (falls auf dem Dateisystem vorhanden). Wenn keine Mimetypen-Datei gefunden wird, ist die Schätzung von Mimetypen basierend auf der Dateiendung deaktiviert. Standardmäßig nicht gesetzt. - $highlight_bin
-
Pfad zur zu verwendenden Highlight-Executable (es muss diejenige von http://andre-simon.de/zip/download.php sein, aufgrund von Annahmen über Parameter und Ausgabe). Standardmäßig auf highlight gesetzt; setzen Sie es auf den vollständigen Pfad zur Highlight-Executable, falls diese nicht im PATH Ihres Webservers installiert ist. Beachten Sie, dass die Funktion highlight gesetzt sein muss, damit Gitweb tatsächlich Syntax-Hervorhebung verwendet.
**HINWEIS**: Damit eine Datei hervorgehoben werden kann, muss ihr Syntaxtyp erkannt werden und dieser Syntax muss von "highlight" unterstützt werden. Die Standard-Syntaxerkennung ist minimal, und es gibt viele unterstützte Syntaxtypen ohne Standarderkennung. Es gibt drei Optionen zur Hinzufügung von Syntaxerkennung. Die erste und zweite Priorität sind
%highlight_basenameund%highlight_ext, die basierend auf dem Basenamen (dem vollständigen Dateinamen, z.B. "Makefile") und der Endung (z.B. "sh") erkennen. Die Schlüssel dieser Hashes sind der Basisname bzw. die Endung, und der Wert für einen gegebenen Schlüssel ist der Name der Syntax, der über--syntax<syntax> an "highlight" übergeben wird. Die letzte Priorität sind die "highlight"-Konfiguration vonShebang-regulären Ausdrücken zur Erkennung der Sprache basierend auf der ersten Zeile der Datei (z.B. Übereinstimmung mit der Zeile "#!/bin/bash"). Weitere Details finden Sie in der Highlight-Dokumentation und der Standardkonfiguration unter /etc/highlight/filetypes.conf.Wenn beispielsweise die von Ihnen gehosteten Repositories die Endung "phtml" für PHP-Dateien verwenden und Sie eine korrekte Syntax-Hervorhebung für diese Dateien wünschen, können Sie Folgendes zur Gitweb-Konfiguration hinzufügen
our %highlight_ext; $highlight_ext{'phtml'} = 'php';
Links und ihre Ziele
Die unten beschriebenen Konfigurationsvariablen konfigurieren einige von Gitwebs Links: ihr Ziel und ihr Aussehen (Text oder Bild) und wo Seiten-Voraussetzungen (Stylesheet, Favicon, Bilder, Skripte) zu finden sind. Normalerweise werden sie bei ihren Standardwerten belassen, mit der möglichen Ausnahme der Variablen @stylesheets.
- @stylesheets
-
Liste von URIs von Stylesheets (relativ zur Basis-URI einer Seite). Sie können mehr als ein Stylesheet angeben, z.B. um "gitweb.css" als Basis zu verwenden und sitespezifische Modifikationen in einem separaten Stylesheet vorzunehmen, um das Upgrade von Gitweb zu erleichtern. Zum Beispiel können Sie ein
site-Stylesheet hinzufügen, indem Siepush @stylesheets, "gitweb-site.css";
in die Gitweb-Konfigurationsdatei schreiben. Diese Werte, die relative Pfade sind, sind relativ zur Basis-URI von Gitweb.
Diese Liste sollte die URI des Standard-Stylesheets von Gitweb enthalten. Die Standard-URI des Gitweb-Stylesheets kann zur Build-Zeit über die Makefile-Variable
GITWEB_CSSgesetzt werden. Ihr Standardwert iststatic/gitweb.css(oderstatic/gitweb.min.css, wenn die VariableCSSMINdefiniert ist, d.h. wenn während des Builds ein CSS-Minifier verwendet wurde).**Hinweis**: Es gibt auch eine Legacy-Konfigurationsvariable
$stylesheet, die von älteren Gitweb-Versionen verwendet wurde. Wenn die Variable$stylesheetdefiniert ist, wird nur das von dieser Variable angegebene CSS-Stylesheet von Gitweb verwendet. - $logo
-
Verweist auf den Speicherort, an dem Sie git-logo.png auf Ihrem Webserver platziert haben, oder generischer auf die URI des Logos, 72x27 Pixel groß. Dieses Bild wird in der oberen rechten Ecke jeder Gitweb-Seite angezeigt und als Logo für den Atom-Feed verwendet. Relativ zur Basis-URI von Gitweb (als Pfad). Kann beim Bauen von Gitweb mit der Variablen
GITWEB_LOGOangepasst werden. Standardmäßig aufstatic/git-logo.pnggesetzt. - $favicon
-
Verweist auf den Speicherort, an dem Sie git-favicon.png auf Ihrem Webserver platziert haben, oder generischer auf die URI des Favicons, das als "image/png" Typ serviert wird. Webbrowser, die Favicons (Website-Symbole) unterstützen, können diese in der Adressleiste des Browsers und neben dem Seitennamen in den Lesezeichen anzeigen. Relativ zur Basis-URI von Gitweb. Kann zur Build-Zeit mit der Variablen
GITWEB_FAVICONangepasst werden. Standardmäßig aufstatic/git-favicon.pnggesetzt. - $javascript
-
Verweist auf den Speicherort, an dem Sie gitweb.js auf Ihrem Webserver platziert haben, oder generischer auf die URI des von Gitweb verwendeten JavaScript-Codes. Relativ zur Basis-URI von Gitweb. Kann zur Build-Zeit mit der Build-Zeit-Konfigurationsvariable
GITWEB_JSgesetzt werden.Der Standardwert ist entweder
static/gitweb.jsoderstatic/gitweb.min.js, wenn die Build-VariableJSMINdefiniert wurde, d.h. wenn zur Build-Zeit ein JavaScript-Minifier verwendet wurde. **Hinweis**, dass diese einzelne Datei aus mehreren einzelnen JavaScript-"Modulen" generiert wird. - $home_link
-
Ziel des Home-Links am oberen Rand aller Seiten (der erste Teil der Ansicht "Breadcrumbs"). Standardmäßig ist er auf die absolute URI der aktuellen Seite gesetzt (auf den Wert der Variablen
$my_urioder auf "/", wenn$my_uriundefiniert oder eine leere Zeichenkette ist). - $home_link_str
-
Beschriftung für den "Home-Link" am oberen Rand aller Seiten, der zu
$home_linkführt (normalerweise die Hauptseite von Gitweb, die die Projektliste enthält). Er wird als erste Komponente des Gitweb-"Breadcrumb Trails" verwendet: <home-link>/<project>/<action>. Kann zur Build-Zeit mit der VariablenGITWEB_HOME_LINK_STRgesetzt werden. Standardmäßig ist er auf "projects" gesetzt, da dieser Link zur Projektliste führt. Eine andere beliebte Wahl ist, ihn auf den Namen der Seite zu setzen. Beachten Sie, dass er als rohes HTML behandelt wird und daher nicht aus nicht vertrauenswürdigen Quellen gesetzt werden sollte. - @extra_breadcrumbs
-
Zusätzliche Links, die am Anfang des Breadcrumb-Trails vor dem Home-Link hinzugefügt werden sollen, zu Seiten, die logisch "oberhalb" der Gitweb-Projektliste liegen, wie z.B. die Organisation und die Abteilung, die den Gitweb-Server hosten. Jedes Element der Liste ist ein Verweis auf ein Array, in dem Element 0 der Linktext ist (entspricht
$home_link_str) und Element 1 die Ziel-URL ist (entspricht$home_link).Zum Beispiel erzeugt die folgende Einstellung einen Breadcrumb-Trail wie "home / dev / projects / …", wobei "projects" der Home-Link ist.
our @extra_breadcrumbs = ( [ 'home' => 'https://www.example.org/' ], [ 'dev' => 'https://dev.example.org/' ], ); - $logo_url
- $logo_label
-
URI und Beschriftung (Titel) für den Git-Logo-Link (oder Ihr Seitenlogo, falls Sie ein anderes Logo verwenden). Standardmäßig verweisen beide auf die Git-Homepage, https://git-scm.de; in der Vergangenheit verwiesen sie auf die Git-Dokumentation unter https://www.kernel.org.
Aussehen von Gitweb ändern
Sie können das Aussehen der von Gitweb generierten Seiten mit den unten beschriebenen Variablen anpassen. Sie können den Seitennamen ändern, gemeinsame Header und Footer für alle Seiten hinzufügen und eine Beschreibung dieser Gitweb-Installation auf der Hauptseite (der Projektlistenseite) hinzufügen usw.
- $site_name
-
Name Ihrer Seite oder Organisation, der in den Seitentiteln erscheinen soll. Setzen Sie ihn auf etwas Beschreibendes für deutlichere Lesezeichen usw. Wenn diese Variable nicht gesetzt ist oder leer ist, verwendet Gitweb den Wert der CGI-Umgebungsvariablen
SERVER_NAMEund setzt den Seitennamen auf "$SERVER_NAME Git" oder "Untitled Git", wenn diese Variable nicht gesetzt ist (z.B. wenn Gitweb als eigenständiges Skript ausgeführt wird).Kann zur Build-Zeit über
GITWEB_SITENAMEgesetzt werden. Standardmäßig nicht gesetzt. - $site_html_head_string
-
HTML-Snippet, das in den <head>-Abschnitt jeder Seite aufgenommen werden soll. Kann zur Build-Zeit über
GITWEB_SITE_HTML_HEAD_STRINGgesetzt werden. Kein Standardwert. - $site_header
-
Name einer Datei mit HTML, die am Anfang jeder Seite aufgenommen werden soll. Relativ zum Verzeichnis, das das gitweb.cgi-Skript enthält. Kann zur Build-Zeit über
GITWEB_SITE_HEADERgesetzt werden. Kein Standardwert. -
Name einer Datei mit HTML, die am Ende jeder Seite aufgenommen werden soll. Relativ zum Verzeichnis, das das gitweb.cgi-Skript enthält. Kann zur Build-Zeit über
GITWEB_SITE_FOOTERgesetzt werden. Kein Standardwert. - $home_text
-
Name einer HTML-Datei, die, falls sie existiert, auf der Gitweb-Projektübersichtsseite ("projects_list"-Ansicht) aufgenommen wird. Relativ zum Verzeichnis, das das gitweb.cgi-Skript enthält. Der Standardwert kann zur Build-Zeit mit der Variablen
GITWEB_HOMETEXTangepasst werden. Standardmäßig auf indextext.html gesetzt. - $projects_list_description_width
-
Die Breite (in Zeichen) der Spalte "Beschreibung" in der Projektliste. Längere Beschreibungen werden abgeschnitten (Versuch, an Wortgrenzen zu schneiden); die vollständige Beschreibung ist im title-Attribut verfügbar (wird normalerweise beim Überfahren mit der Maus angezeigt). Der Standardwert ist 25, was zu klein sein könnte, wenn Sie lange Projektbeschreibungen verwenden.
- $default_projects_order
-
Standardwert für die Sortierung von Projekten auf der Projektlistenseite, d.h. die Sortierung, die verwendet wird, wenn Sie die Projektliste nicht explizit sortieren (wenn kein "o" CGI-Query-Parameter in der URL vorhanden ist). Gültige Werte sind "none" (unsortiert), "project" (Projekte nach Projektname, d.h. Pfad zum Repository relativ zu
$projectroot), "descr" (Projektbeschreibung), "owner" und "age" (nach Datum des letzten Commits).Standardwert ist "project". Ein unbekannter Wert bedeutet unsortiert.
Verhalten von Gitweb ändern
Diese Konfigurationsvariablen steuern das *interne* Gitweb-Verhalten.
- $default_blob_plain_mimetype
-
Standard-MIME-Typ für die blob_plain (rohe) Ansicht, wenn die MIME-Typ-Überprüfung nicht zu einem anderen Typ führt; standardmäßig "text/plain". Gitweb errät den MIME-Typ einer anzuzeigenden Datei basierend auf der Erweiterung ihres Dateinamens, wobei
$mimetypes_file(falls gesetzt und Datei vorhanden) und/etc/mime.types-Dateien verwendet werden (siehe Manpage mime.types(5); nur Regeln für Dateiendungen werden von Gitweb unterstützt). - $default_text_plain_charset
-
Standard-Charset für Textdateien. Wenn dies nicht gesetzt ist, wird die Webserver-Konfiguration verwendet. Standardmäßig nicht gesetzt.
- $fallback_encoding
-
Gitweb nimmt diese Zeichenkodierung an, wenn eine Zeile Nicht-UTF-8-Zeichen enthält. Die Fallback-Dekodierung wird ohne Fehlerprüfung verwendet, daher kann sie sogar "utf-8" sein. Der Wert muss eine gültige Kodierung sein; siehe Manpage Encoding::Supported(3pm) für eine Liste. Der Standardwert ist "latin1", alias "iso-8859-1".
- @diff_opts
-
Optionen zur Erkennung von Umbenennungen für git-diff und git-diff-tree. Standard ist ('-M'); setzen Sie es auf ('-C') oder ('-C', '-C'), um auch Kopien zu erkennen, oder setzen Sie es auf () d.h. eine leere Liste, wenn Sie keine Erkennung von Umbenennungen wünschen.
**Hinweis**, dass die Erkennung von Umbenennungen und insbesondere von Kopien ziemlich CPU-intensiv sein kann. Beachten Sie auch, dass Nicht-Git-Tools Probleme mit Patches haben können, die mit den oben genannten Optionen erstellt wurden, insbesondere wenn sie Dateikopien ('-C') oder kreuzweise Umbenennungen ('-B') beinhalten.
Einige optionale Funktionen und Richtlinien
Die meisten Funktionen werden über den Hash %feature konfiguriert; einige zusätzliche Gitweb-Funktionen können jedoch über die unten beschriebenen Variablen ein- und ausgeschaltet und konfiguriert werden. Diese Liste enthält neben Konfigurationsvariablen, die das Aussehen von Gitweb steuern, auch Variablen, die die administrative Seite von Gitweb konfigurieren (z.B. Schutz vor Cross-Site-Scripting; zugegeben, dies beeinflusst als Nebeneffekt das Aussehen von "Summary"-Seiten oder die Lastbegrenzung).
- @git_base_url_list
-
Liste von Git-Basis-URLs. Diese URLs werden verwendet, um URLs zu generieren, die beschreiben, von wo ein Projekt abgeholt werden kann, und die auf der Projektzusammenfassungsseite angezeigt werden. Die vollständige Fetch-URL lautet "
$git_base_url/$project" für jedes Element dieser Liste. Sie können mehrere Basis-URLs einrichten (z.B. eine für dasgit://-Protokoll und eine für dashttp://-Protokoll).Beachten Sie, dass pro Repository-Konfiguration in der Datei
$GIT_DIR/cloneurloder als Werte der Mehrfachwert-Konfigurationsvariablengitweb.urlin der Projektkonfiguration festgelegt werden kann. Per-Repository-Konfiguration hat Vorrang vor dem Wert, der aus Elementen von@git_base_url_listund dem Projektnamen zusammengesetzt wird.Sie können einen einzelnen Wert (einen einzelnen Eintrag/Punkt in dieser Liste) zur Build-Zeit einrichten, indem Sie die Build-Zeit-Konfigurationsvariable
GITWEB_BASE_URLsetzen. Standardmäßig ist sie auf () gesetzt, d.h. eine leere Liste. Das bedeutet, dass Gitweb keine Projekt-URL (zum Abrufen) aus dem Projektnamen erstellen würde. - $projects_list_group_categories
-
Ob die Gruppierung von Projekten nach Kategorie auf der Projektlistenseite aktiviert werden soll. Die Kategorie eines Projekts wird durch die Datei
$GIT_DIR/categoryoder die Variablegitweb.categoryin der Konfiguration jedes Repositories bestimmt. Standardmäßig deaktiviert (auf 0 gesetzt). - $project_list_default_category
-
Standardkategorie für Projekte, für die keine angegeben ist. Wenn dies auf eine leere Zeichenkette gesetzt ist, bleiben solche Projekte unkategorisiert und werden am Anfang, oberhalb der kategorisierten Projekte, aufgelistet. Nur verwendet, wenn Projektkategorien aktiviert sind, was bedeutet, wenn
$projects_list_group_categorieswahr ist. Standardmäßig auf "" (leere Zeichenkette) gesetzt. - $prevent_xss
-
Wenn wahr, werden einige Gitweb-Funktionen deaktiviert, um zu verhindern, dass Inhalte in Repositories Cross-Site-Scripting (XSS)-Angriffe starten. Setzen Sie dies auf wahr, wenn Sie den Inhalt Ihrer Repositories nicht vertrauen. Standardmäßig falsch (auf 0 gesetzt).
- $maxload
-
Wird verwendet, um die maximale Last einzustellen, bei der wir noch auf Gitweb-Anfragen reagieren. Wenn die Serverlast diesen Wert überschreitet, gibt Gitweb einen "503 Service Unavailable"-Fehler zurück. Die Serverlast wird als 0 angenommen, wenn Gitweb ihren Wert nicht ermitteln kann. Derzeit funktioniert dies nur unter Linux, wo /proc/loadavg verwendet wird; die Last dort ist die Anzahl der aktiven Aufgaben im System – tatsächlich laufende Prozesse – gemittelt über die letzte Minute.
Setzen Sie
$maxloadauf einen undefinierten Wert (undef), um diese Funktion auszuschalten. Der Standardwert ist 300. - $omit_age_column
-
Wenn wahr, wird die Spalte mit dem Datum des letzten Commits auf der Projektlistenseite weggelassen. Dies kann etwas I/O und einen Fork pro Repository einsparen.
- $omit_owner
-
Wenn wahr, wird die Anzeige von Informationen über den Repository-Besitzer verhindert.
- $per_request_config
-
Wenn dies auf einen Code-Referenz gesetzt ist, wird es einmal pro Anfrage ausgeführt. Sie können Teile der Konfiguration, die sich pro Sitzung ändern, auf diese Weise setzen. Zum Beispiel könnte man den folgenden Code in einer Gitweb-Konfigurationsdatei verwenden
our $per_request_config = sub { $ENV{GL_USER} = $cgi->remote_user || "gitweb"; };Wenn
$per_request_configkeine Code-Referenz ist, wird es als boolescher Wert interpretiert. Wenn es wahr ist, verarbeitet Gitweb Konfigurationsdateien einmal pro Anfrage, und wenn es falsch ist, verarbeitet Gitweb Konfigurationsdateien nur einmal, jedes Mal, wenn es ausgeführt wird. Standardmäßig wahr (auf 1 gesetzt).**HINWEIS**:
$my_url,$my_uriund$base_urlwerden vor jeder Anfrage mit ihren Standardwerten überschrieben. Wenn Sie sie ändern möchten, stellen Sie sicher, dass Sie diese Variable auf wahr oder eine Code-Referenz setzen, die die gewünschten Änderungen bewirkt.Diese Variable ist nur wichtig, wenn Sie persistente Web-Umgebungen verwenden, die mehrere Anfragen mit einer einzigen Gitweb-Instanz bedienen, wie mod_perl, FastCGI oder Plackup.
Andere Variablen
Normalerweise müssen Sie keine der unten beschriebenen Konfigurationsvariablen ändern (anpassen); sie sollten von Gitweb automatisch auf den korrekten Wert gesetzt werden.
- $version
-
Gitweb-Version, wird beim Erstellen von gitweb.cgi aus gitweb.perl automatisch gesetzt. Möglicherweise möchten Sie sie ändern, wenn Sie ein modifiziertes Gitweb ausführen, zum Beispiel
our $version .= " with caching";
wenn Sie eine modifizierte Version von Gitweb mit Caching-Unterstützung ausführen. Diese Variable ist rein informativ und wird z.B. im "generator"-Meta-Header im HTML-Header verwendet.
- $my_url
- $my_uri
-
Vollständige URL und absolute URL des Gitweb-Skripts; in früheren Versionen von Gitweb mussten Sie diese Variablen möglicherweise setzen, aber jetzt sollte es keinen Bedarf mehr dafür geben. Siehe
$per_request_config, wenn Sie sie trotzdem setzen müssen. - $base_url
-
Basis-URL für relative URLs in von Gitweb generierten Seiten (z.B.
$logo,$favicon,@stylesheets, wenn sie relative URLs sind), benötigt und verwendet <base href="$base_url"> nur für URLs mit nicht leerem PATH_INFO. Normalerweise setzt Gitweb seinen Wert korrekt, und es besteht kein Bedarf, diese Variable zu setzen, z.B. auf $my_uri oder "/". Siehe$per_request_config, wenn Sie sie dennoch überschreiben möchten.
KONFIGURIEREN VON GITWEB-FUNKTIONEN
Viele gitweb-Funktionen können über die %feature-Hash-Tabelle aktiviert (oder deaktiviert) und konfiguriert werden. Die Namen der gitweb-Funktionen sind die Schlüssel dieser Hash-Tabelle.
Jedes %feature-Hash-Element ist eine Hash-Referenz und hat folgende Struktur
"<feature-name>" => {
"sub" => <feature-sub-(subroutine)>,
"override" => <allow-override-(boolean)>,
"default" => [ <options>... ]
},
Einige Funktionen können nicht pro Projekt überschrieben werden. Für diese Funktionen hat die Struktur des entsprechenden %feature-Hash-Elements eine einfachere Form
"<feature-name>" => {
"override" => 0,
"default" => [ <options>... ]
},
Wie man sehen kann, fehlt das Element 'sub'.
Die Bedeutung jedes Teils der Feature-Konfiguration wird nachfolgend beschrieben
- default
-
Liste (Array-Referenz) von Feature-Parametern (falls vorhanden), die auch zum Ein- oder Ausschalten des jeweiligen Features verwendet werden.
Beachten Sie, dass es sich derzeit **immer** um eine Array-Referenz handelt, auch wenn das Feature keine Konfigurationsparameter akzeptiert und 'default' nur zum Ein- oder Ausschalten verwendet wird. In diesem Fall schalten Sie das Feature ein, indem Sie dieses Element auf [
1] setzen, und aus, indem Sie es auf [0] setzen. Siehe auch den Abschnitt über das "blame"-Feature im Abschnitt "Beispiele".Um Features, die Parameter akzeptieren (konfigurierbar sind), zu deaktivieren, müssen Sie dieses Element auf eine leere Liste setzen, d. h. [].
- override
-
Wenn dieses Feld einen wahren Wert hat, dann ist das jeweilige Feature überschreibbar, was bedeutet, dass es pro Repository konfiguriert (oder aktiviert/deaktiviert) werden kann.
Normalerweise ist ein gegebenes "<Feature>" über die Konfigurationsvariable
gitweb.<Feature> in der Git-Konfigurationsdatei des jeweiligen Repositorys konfigurierbar.**Hinweis**: Kein Feature ist standardmäßig überschreibbar.
- sub
-
Internes Implementierungsdetail. Wichtig ist, dass, wenn dieses Feld nicht vorhanden ist, kein pro-Repository-Override für das jeweilige Feature unterstützt wird.
Sie müssen dies niemals in der gitweb-Konfigurationsdatei ändern.
Features in %feature
Die über die %feature-Hash-Tabelle konfigurierbaren gitweb-Funktionen sind nachfolgend aufgelistet. Dies sollte eine vollständige Liste sein, aber letztendlich ist die maßgebliche und vollständige Liste im Quellcode von gitweb.cgi enthalten, wobei die Funktionen in den Kommentaren beschrieben sind.
- blame
-
Aktiviert die "blame"- und "blame_incremental"-Blob-Ansichten, die für jede Zeile den letzten Commit anzeigen, der sie geändert hat; siehe git-blame[1]. Dies kann sehr CPU-intensiv sein und ist daher standardmäßig deaktiviert.
Dieses Feature kann pro Repository über die Konfigurationsvariable
gitweb.blamedes Repositorys (boolean) konfiguriert werden. - snapshot
-
Aktiviert und konfiguriert die "snapshot"-Aktion, mit der der Benutzer ein komprimiertes Archiv eines beliebigen Trees oder Commits herunterladen kann, wie es von git-archive[1] erzeugt wird und möglicherweise zusätzlich komprimiert ist. Dies kann potenziell hohen Traffic erzeugen, wenn Sie ein großes Projekt haben.
Der Wert von 'default' ist eine Liste von Namen von Snapshot-Formaten, definiert in der
%known_snapshot_formats-Hash-Tabelle, die Sie anbieten möchten. Unterstützte Formate sind "tgz", "tbz2", "txz" (gzip/bzip2/xz komprimiertes Tar-Archiv) und "zip"; konsultieren Sie die gitweb-Quellen für eine definitive Liste. Standardmäßig wird nur "tgz" angeboten.Dieses Feature kann pro Repository über die Konfigurationsvariable
gitweb.snapshotdes Repositorys konfiguriert werden, die eine kommagetrennte Liste von Formaten oder "none" zum Deaktivieren von Snapshots enthält. Unbekannte Werte werden ignoriert. - grep
-
Aktiviert die grep-Suche, die die Dateien im aktuell ausgewählten Tree (Verzeichnis) auflistet, die den angegebenen String enthalten; siehe git-grep[1]. Dies kann natürlich potenziell CPU-intensiv sein. Standardmäßig aktiviert.
Dieses Feature kann pro Repository über die Konfigurationsvariable
gitweb.grepdes Repositorys (boolean) konfiguriert werden. - pickaxe
-
Aktiviert die sogenannte "Pickaxe"-Suche, die die Commits auflistet, die einen gegebenen String in einer Datei eingeführt oder entfernt haben. Dies kann eine praktische und recht schnelle Alternative zur "blame"-Aktion sein, ist aber immer noch potenziell CPU-intensiv. Standardmäßig aktiviert.
Die Pickaxe-Suche wird in git-log[1] beschrieben (die Beschreibung der Option
-S<string>, die auf den Pickaxe-Eintrag in gitdiffcore[7] für weitere Details verweist).Dieses Feature kann pro Repository konfiguriert werden, indem die Konfigurationsvariable
gitweb.pickaxedes Repositorys (boolean) gesetzt wird. - show-sizes
-
Aktiviert die Anzeige der Größe von Blobs (gewöhnliche Dateien) in der "tree"-Ansicht in einer separaten Spalte, ähnlich wie
ls-les tut; siehe Beschreibung der Option-lin der Manpage git-ls-tree[1]. Dies kostet etwas I/O. Standardmäßig aktiviert.Dieses Feature kann pro Repository über die Konfigurationsvariable
gitweb.showSizesdes Repositorys (boolean) konfiguriert werden. - patches
-
Aktiviert und konfiguriert die "patches"-Ansicht, die eine Liste von Commits im E-Mail-Format (Plain Text) anzeigt; siehe auch git-format-patch[1]. Der Wert ist die maximale Anzahl von Patches in einem Patchset, das in der "patches"-Ansicht generiert wird. Setzen Sie das Feld default auf eine Liste, die ein einzelnes Element enthält, oder auf eine leere Liste, um die Patch-Ansicht zu deaktivieren, oder auf eine Liste, die eine einzelne negative Zahl enthält, um jede Begrenzung zu entfernen. Der Standardwert ist 16.
Dieses Feature kann pro Repository über die Konfigurationsvariable
gitweb.patchesdes Repositorys (Integer) konfiguriert werden. - avatar
-
Avatar-Unterstützung. Wenn dieses Feature aktiviert ist, zeigen Ansichten wie "shortlog" oder "commit" einen Avatar an, der mit der E-Mail jedes Committer und Autors verknüpft ist.
Aktuell verfügbare Anbieter sind **"gravatar"** und **"picon"**. Nur ein Anbieter kann gleichzeitig ausgewählt werden (default ist eine Ein-Element-Liste). Wenn ein unbekannter Anbieter angegeben wird, ist das Feature deaktiviert. **Hinweis**: Einige Anbieter erfordern möglicherweise zusätzliche Perl-Pakete; siehe
gitweb/INSTALLfür weitere Details.Dieses Feature kann pro Repository über die Konfigurationsvariable
gitweb.avatardes Repositorys konfiguriert werden.Siehe auch
%avatar_sizemit Pixelgrößen für Icons und Avatare ("default" wird für einzeilige Ansichten wie "log" und "shortlog" verwendet, "double" wird für zweizeilige Ansichten wie "commit", "commitdiff" oder "tag" verwendet). Wenn die Standard-Schriftgrößen oder Zeilenhöhen geändert werden (z. B. durch Hinzufügen eines zusätzlichen CSS-Stylesheets in@stylesheets), kann es angebracht sein, diese Werte zu ändern. - email-privacy
-
E-Mail-Adressen aus dem generierten HTML usw. Inhalt entfernen. Dies verschleiert E-Mail-Adressen, die aus den Absender-/Committer- und Kommentarabschnitten des Git-Logs abgerufen werden. Es soll Web-Crawler behindern, die Adressen sammeln und missbrauchen. Solche Crawler respektieren möglicherweise robots.txt nicht. Beachten Sie, dass Benutzer und Benutzerwerkzeuge die Adressen ebenfalls als geschwärzt sehen. Wenn Gitweb nicht der letzte Schritt in einem Workflow ist, können nachfolgende Schritte aufgrund der geschwärzten Informationen, die sie erhalten, fehlschlagen. Standardmäßig deaktiviert.
- highlight
-
Server-seitige Syntax-Highlight-Unterstützung in der "blob"-Ansicht. Dies erfordert, dass das Programm
$highlight_binverfügbar ist (siehe Beschreibung dieser Variablen im Abschnitt "Konfigurationsvariablen" oben) und ist daher standardmäßig deaktiviert.Dieses Feature kann pro Repository über die Konfigurationsvariable
gitweb.highlightdes Repositorys (boolean) konfiguriert werden. - remote_heads
-
Aktiviert die Anzeige von Remote-Heads (Remote-Tracking-Branches) in der "heads"-Liste. In den meisten Fällen ist die Liste der Remote-Tracking-Branches ein unnötiges internes Detail, und dieses Feature ist daher standardmäßig deaktiviert. git-instaweb[1], das normalerweise zum Durchsuchen lokaler Repositories verwendet wird, aktiviert und nutzt dieses Feature.
Dieses Feature kann pro Repository über die Konfigurationsvariable
gitweb.remote_headsdes Repositorys (boolean) konfiguriert werden.
Die verbleibenden Features können nicht pro Projekt überschrieben werden.
- search
-
Aktiviert die Textsuche, die die Commits auflistet, die Autor, Committer oder Commit-Text mit einem gegebenen String abgleichen; siehe die Beschreibung der Optionen
--author,--committerund--grepin der Manpage git-log[1]. Standardmäßig aktiviert.Projektübergreifende Überschreibung wird nicht unterstützt.
- forks
-
Wenn dieses Feature aktiviert ist, betrachtet gitweb Projekte in Unterverzeichnissen des Projekt-Roots (Basisname) als Forks bestehender Projekte. Für jedes Projekt
$projname.gitwerden Projekte im Verzeichnis$projname/und seinen Unterverzeichnissen nicht in der Hauptprojektliste angezeigt. Stattdessen wird neben$projnameein '+' -Zeichen angezeigt, das zu einer "Forks"-Ansicht führt, die alle Forks (alle Projekte im Unterverzeichnis$projname/) auflistet. Zusätzlich ist eine "Forks"-Ansicht für ein Projekt von der Projekt-Zusammenfassungsseite aus verlinkt.Wenn die Projektliste aus einer Datei stammt (
$projects_listverweist auf eine Datei), werden Forks nur erkannt, wenn sie nach dem Hauptprojekt in dieser Datei aufgeführt sind.Projektübergreifende Überschreibung wird nicht unterstützt.
- actions
-
Fügt benutzerdefinierte Links zur Aktionsleiste aller Projektseiten ein. Dies ermöglicht es Ihnen, auf Skripte von Drittanbietern zu verlinken, die sich in gitweb integrieren.
Der Wert "default" besteht aus einer Liste von Tripeln im Format (
"<Label>","<Link>","<Position>"), wobei "Position" das Label ist, nach dem der Link eingefügt werden soll, "Link" eine Formatzeichenkette ist, in der%nzum Projektnamen erweitert wird,%fzum Projektpfad innerhalb des Dateisystems (d. h. "$projectroot/$project"),%hzum aktuellen Hash ('h' gitweb-Parameter) und%bzum aktuellen Hash-Basis ('hb' gitweb-Parameter);%%wird zu '%' erweitert.Zum Beispiel hat die Git-Hosting-Website https://repo.or.cz zum Zeitpunkt der Erstellung dieser Seite sie wie folgt eingestellt, um eine grafische Protokollansicht (mit dem Drittanbieter-Tool **git-browser**) zu ermöglichen
$feature{'actions'}{'default'} = [ ('graphiclog', '/git-browser/by-commit.html?r=%n', 'summary')];Dies fügt einen Link mit dem Titel "graphiclog" nach dem Link "summary" ein, der zum Skript
git-browserführt undr=<Projekt> als Abfrageparameter übergibt.Projektübergreifende Überschreibung wird nicht unterstützt.
- timed
-
Aktiviert die Anzeige, wie viel Zeit und wie viele Git-Befehle zum Generieren und Anzeigen jeder Seite im Seitenfuß (am Ende der Seite) benötigt wurden. Zum Beispiel könnte der Fuß enthalten: "Diese Seite dauerte 6,53325 Sekunden und 13 Git-Befehle zur Generierung." Standardmäßig deaktiviert.
Projektübergreifende Überschreibung wird nicht unterstützt.
- javascript-timezone
-
Aktiviert und konfiguriert die Möglichkeit, eine gemeinsame Zeitzone für Datumsangaben in der gitweb-Ausgabe über JavaScript zu ändern. Datumsangaben in der gitweb-Ausgabe umfassen authordate und committerdate in den Ansichten "commit", "commitdiff" und "log" sowie taggerdate in der Ansicht "tag". Standardmäßig aktiviert.
Der Wert ist eine Liste von drei Werten: eine Standard-Zeitzone (für den Fall, dass der Client keine andere Zeitzone ausgewählt und in einem Cookie gespeichert hat), der Name des Cookies, in dem die ausgewählte Zeitzone gespeichert werden soll, und eine CSS-Klasse, die zur Kennzeichnung von Datumsangaben für die Manipulation verwendet wird. Wenn Sie dieses Feature deaktivieren möchten, setzen Sie "default" auf eine leere Liste: [].
Typische gitweb-Konfigurationsdateien ändern nur die Start- (Standard-) Zeitzone und lassen die anderen Elemente bei ihren Standardwerten.
$feature{'javascript-timezone'}{'default'}[0] = "utc";Die hier präsentierte Beispielkonfiguration ist rückwärts- und vorwärtskompatibel.
Zeitzonenwerte können "local" (für die lokale Zeitzone, die der Browser verwendet), "utc" (was gitweb verwendet, wenn JavaScript oder dieses Feature deaktiviert ist) oder numerische Zeitzonen in der Form "+/-HHMM", wie z. B. "+0200" sein.
Projektübergreifende Überschreibung wird nicht unterstützt.
- extra-branch-refs
-
Liste zusätzlicher Verzeichnisse unter "refs", die als Branch-Refs verwendet werden. Zum Beispiel, wenn Sie ein Gerrit-Setup haben, bei dem alle Branches unter refs/heads/ offiziell sind, nach Überprüfung gepusht werden und Branches unter refs/sandbox/, refs/wip und refs/other benutzerbezogen sind und die Berechtigungen viel weiter gefasst sind, dann möchten Sie diese Variable möglicherweise wie folgt setzen
$feature{'extra-branch-refs'}{'default'} = ['sandbox', 'wip', 'other'];Dieses Feature kann pro Repository konfiguriert werden, nachdem $feature{extra-branch-refs}{override} auf true gesetzt wurde, über die Konfigurationsvariable
gitweb.extraBranchRefsdes Repositorys, die eine durch Leerzeichen getrennte Liste von Refs enthält. Ein Beispiel[gitweb] extraBranchRefs = sandbox wip other
gitweb.extraBranchRefs ist eigentlich eine mehrwertige Konfigurationsvariable, daher ist das folgende Beispiel ebenfalls korrekt und das Ergebnis ist dasselbe wie im obigen Ausschnitt
[gitweb] extraBranchRefs = sandbox extraBranchRefs = wip other
Es ist ein Fehler, eine Ref anzugeben, die die "git check-ref-format"-Prüfung nicht besteht. Duplizierte Werte werden gefiltert.
BEISPIELE
Um die Unterstützung für blame, pickaxe search und snapshots (mit "tar.gz" und "zip" Snapshots) zu aktivieren und gleichzeitig einzelnen Projekten zu erlauben, diese zu deaktivieren, fügen Sie Folgendes in Ihre GITWEB_CONFIG-Datei ein
$feature{'blame'}{'default'} = [1];
$feature{'blame'}{'override'} = 1;
$feature{'pickaxe'}{'default'} = [1];
$feature{'pickaxe'}{'override'} = 1;
$feature{'snapshot'}{'default'} = ['zip', 'tgz'];
$feature{'snapshot'}{'override'} = 1;
Wenn Sie das Überschreiben für das Snapshot-Feature erlauben, können Sie angeben, welche Snapshot-Formate global deaktiviert sind. Sie können auch beliebige Kommandozeilenoptionen hinzufügen (z. B. das Einstellen der Kompressionsstufe). Sie können zum Beispiel Zip-komprimierte Snapshots deaktivieren und **gzip**(1) auf Stufe 6 ausführen lassen, indem Sie die folgenden Zeilen zu Ihrer gitweb-Konfigurationsdatei hinzufügen
$known_snapshot_formats{'zip'}{'disabled'} = 1;
$known_snapshot_formats{'tgz'}{'compressor'} = ['gzip','-6'];
BUGS
Die Fehlersuche wäre einfacher, wenn die Fallback-Konfigurationsdatei (/etc/gitweb.conf) und die Umgebungsvariable zur Überschreibung ihres Speicherorts (GITWEB_CONFIG_SYSTEM) Namen hätten, die ihre "Fallback"-Rolle widerspiegeln. Die aktuellen Namen bleiben erhalten, um funktionierende Setups nicht zu unterbrechen.
UMGEBUNG
Der Speicherort von Instanz- und systemweiten Konfigurationsdateien kann mithilfe der folgenden Umgebungsvariablen überschrieben werden
- GITWEB_CONFIG
-
Legt den Speicherort der Instanz-Konfigurationsdatei fest.
- GITWEB_CONFIG_SYSTEM
-
Legt den Speicherort der Fallback-Systemweiten Konfigurationsdatei fest. Diese Datei wird nur gelesen, wenn die Instanz-Konfigurationsdatei nicht existiert.
- GITWEB_CONFIG_COMMON
-
Legt den Speicherort der gemeinsamen systemweiten Konfigurationsdatei fest.
DATEIEN
- gitweb_config.perl
-
Dies ist der Standardname der Instanz-Konfigurationsdatei. Das Format dieser Datei wird oben beschrieben.
- /etc/gitweb.conf
-
Dies ist der Standardname der Fallback-Systemweiten Konfigurationsdatei. Diese Datei wird nur verwendet, wenn die Instanz-Konfigurationsvariable nicht gefunden wird.
- /etc/gitweb-common.conf
-
Dies ist der Standardname der gemeinsamen systemweiten Konfigurationsdatei.
GIT
Teil der git[1] Suite