Start · Sprachen · PHP · Referenz · svn_fs_node_created_rev

svn_fs_node_created_rev

Funktion

Gibt die Revision zurück, in der ein bestimmter Pfad im Subversion-Dateisystem erstellt wurde.

Kategorie: misc

Signatur

svn_fs_node_created_rev(resource $fsroot, string $path): int

Beschreibung

svn_fs_node_created_rev() ist Teil der PECL-SVN-Erweiterung und ermöglicht den direkten Zugriff auf das Subversion-Dateisystem (FS). Die Funktion liefert die Revisionsnummer, in der ein Knoten (Datei oder Verzeichnis) innerhalb eines SVN-Repositorys erstmalig angelegt wurde.

Der Parameter fsroot ist ein Dateisystem-Wurzel-Handle, das typischerweise über svn_fs_revision_root() oder svn_fs_txn_root() beschafft wird. Mit dem path-Parameter wird der relative Pfad innerhalb des Repositorys angegeben, dessen Erstellungsrevision ermittelt werden soll.

Diese Funktion ist nützlich, wenn man bei der Analyse eines SVN-Repositorys nachvollziehen möchte, seit welcher Revision ein bestimmter Pfad existiert, beispielsweise für Audit-Zwecke, Log-Auswertungen oder zur Bestimmung der Herkunft einer Datei innerhalb eines Branching- oder Merge-Workflows.

Hinweis: Diese Funktion setzt die PECL-Erweiterung svn voraus, die separat installiert werden muss und nicht Bestandteil der Standard-PHP-Distribution ist.

Parameter

Name Typ Default Beschreibung
$fsroot Pflicht resource Ein Dateisystem-Wurzel-Handle, das über svn_fs_revision_root() oder svn_fs_txn_root() erzeugt wurde.
$path Pflicht string Der relative Pfad zum Knoten (Datei oder Verzeichnis) innerhalb des SVN-Dateisystems, z. B. /trunk/src/index.php.

Rückgabewert

Typ
int
Beschreibung
Gibt die Revisionsnummer als ganzzahligen Wert zurück, in der der angegebene Pfad erstmals erstellt wurde.

Beispiele

Erstellungsrevision eines Pfades ermitteln

<?php
// Repository öffnen
$repos = svn_repos_open('/var/svn/myrepo');

// Dateisystem-Handle holen
$fs = svn_repos_fs($repos);

// Jüngste Revision ermitteln
$latestRev = svn_fs_youngest_rev($fs);

// Wurzel der jüngsten Revision holen
$fsroot = svn_fs_revision_root($fs, $latestRev);

// Erstellungsrevision eines bestimmten Pfades abrufen
$createdRev = svn_fs_node_created_rev($fsroot, '/trunk/src/index.php');

echo "Die Datei '/trunk/src/index.php' wurde in Revision $createdRev erstellt.\n";
Die Datei '/trunk/src/index.php' wurde in Revision 42 erstellt.

Erstellungsrevision mehrerer Pfade vergleichen

<?php
$repos = svn_repos_open('/var/svn/myrepo');
$fs = svn_repos_fs($repos);
$latestRev = svn_fs_youngest_rev($fs);
$fsroot = svn_fs_revision_root($fs, $latestRev);

$paths = [
    '/trunk/src/index.php',
    '/trunk/src/config.php',
    '/trunk/README.md',
];

foreach ($paths as $path) {
    $rev = svn_fs_node_created_rev($fsroot, $path);
    echo "$path => erstellt in Revision $rev\n";
}
/trunk/src/index.php => erstellt in Revision 42 /trunk/src/config.php => erstellt in Revision 17 /trunk/README.md => erstellt in Revision 1

// Wichtig · Fallstricke

Voraussetzung: Die PECL-Erweiterung svn muss installiert und in der php.ini aktiviert sein (extension=svn.so bzw. extension=svn.dll). Sie ist nicht Bestandteil der Standard-PHP-Distribution.

Falls der angegebene path im gegebenen fsroot nicht existiert, kann die Funktion einen Fehler oder einen undefinierten Rückgabewert liefern. Es empfiehlt sich, den Pfad vorher mit svn_fs_check_path() zu validieren.

Diese Funktion arbeitet direkt auf dem SVN-Dateisystem und umgeht damit den üblichen SVN-Client-Weg. Sie eignet sich daher für serverseitige Repository-Analysen und Administrations-Skripte, nicht jedoch für den Einsatz auf entfernten Repositorys.