Start · Sprachen · PHP · Referenz · svn_repos_fs

svn_repos_fs

Funktion

Gibt ein Handle auf das Dateisystem eines Subversion-Repositorys zurück.

Kategorie: misc

Signatur

svn_repos_fs(resource $repos): resource

Beschreibung

svn_repos_fs() extrahiert aus einem bereits geöffneten Repository-Handle das zugehörige Dateisystem-Handle. Dieses Dateisystem-Handle wird von zahlreichen anderen SVN-Funktionen benötigt, um direkt auf Revisionen, Verzeichnisse und Dateien innerhalb des Repositorys zuzugreifen.

Typischerweise öffnet man zunächst ein Repository mit svn_repos_open() und übergibt das resultierende Handle dann an svn_repos_fs(), um anschließend mit Funktionen wie svn_fs_revision_root() oder svn_fs_youngest_rev() auf die Inhalte zugreifen zu können.

Die Funktion ist Teil der SVNPHP-Erweiterung (svn), die eine PHP-Anbindung an die Subversion-Bibliothek bereitstellt. Sie eignet sich vor allem für administrative Skripte, Migrationswerkzeuge oder serverseitige Hooks, die direkten Zugriff auf ein lokales SVN-Repository benötigen.

Parameter

Name Typ Default Beschreibung
$repos Pflicht resource Ein gültiges Repository-Handle, das zuvor mit svn_repos_open() geöffnet wurde.

Rückgabewert

Typ
resource
Beschreibung
Gibt ein Dateisystem-Handle (resource) zurück, das den direkten Zugriff auf das SVN-Dateisystem des Repositorys ermöglicht. Im Fehlerfall wird false zurückgegeben.

Beispiele

Dateisystem-Handle aus einem Repository ermitteln

<?php
// Repository öffnen
$repos = svn_repos_open('/var/svn/myrepo');
if ($repos === false) {
    die('Repository konnte nicht geöffnet werden.');
}

// Dateisystem-Handle holen
$fs = svn_repos_fs($repos);
if ($fs === false) {
    die('Dateisystem-Handle konnte nicht ermittelt werden.');
}

// Jüngste Revision ermitteln
$youngRev = svn_fs_youngest_rev($fs);
echo 'Jüngste Revision: ' . $youngRev . PHP_EOL;
?>
Jüngste Revision: 42

Dateisystem-Handle für Revisionsbaum verwenden

<?php
$repos = svn_repos_open('/var/svn/myrepo');
$fs    = svn_repos_fs($repos);

// Zugriff auf den Verzeichnisbaum einer bestimmten Revision
$fsRoot = svn_fs_revision_root($fs, 10);
$entries = svn_fs_dir_entries($fsRoot, '/');

foreach ($entries as $name => $type) {
    echo $name . ' (' . ($type === SVN_NODE_DIR ? 'Verzeichnis' : 'Datei') . ')' . PHP_EOL;
}
?>
trunk (Verzeichnis) branches (Verzeichnis) tags (Verzeichnis)

// Wichtig · Fallstricke

Voraussetzung: Die PHP-Erweiterung svn (SVNPHP) muss installiert und aktiviert sein. Diese Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat kompiliert bzw. installiert werden.

Das zurückgegebene Dateisystem-Handle ist eng an das Repository-Handle gebunden. Wird das Repository-Handle ungültig (z. B. durch Schließen oder Garbage Collection), ist auch das Dateisystem-Handle nicht mehr verwendbar.

Die SVN-PHP-Erweiterung wird seit Jahren kaum noch aktiv gepflegt. Für moderne Projekte empfiehlt sich der Einsatz von Kommandozeilen-Wrappers oder spezialisierten Bibliotheken.