LonghornPHP 2026

svn_status

(PECL svn >= 0.1.0)

svn_statusRécupère le statut des fichiers et des dossiers de la copie de travail

Description

function svn_status(string $path, int $flags = 0): array

Retourne le statut des fichiers et des dossiers de la copie de travail, en fournissant les modifications, les ajouts, les suppressions, ainsi que les autres modifications des éléments de la copie de travail.

Liste de paramètres

path

Chemin local vers le fichier ou le dossier dont on souhaite récupérer le statut.

Note:

Les chemins relatifs peuvent être résolus si le dossier de travail courant est l'un de ceux qui contiennent le binaire PHP. Pour utiliser le dossier de travail, utilisez la fonction realpath(), ou l'instruction dirname(__FILE__).

flags

Toute combinaison de Svn::NON_RECURSIVE, Svn::ALL (indépendamment du statut de modification), Svn::SHOW_UPDATES (les entrées seront ajoutées pour les éléments qui ne sont pas à jour), Svn::NO_IGNORE (néglige les propriétés svn:ignore lors de l'analyse des nouveaux fichiers) et Svn::IGNORE_EXTERNALS.

Valeurs de retour

Retourne un tableau indexé numériquement de tableaux associatifs détaillant le statut des éléments du référentiel :

Array (
    [0] => Array (
        // information sur l'élément
    )
    [1] => ...
)

L'information sur un élément est un tableau associatif qui peut contenir les clés suivantes :

path

Chemin vers le fichier/dossier de cette entrée sur le système de fichiers local.

text_status

Statut du texte de l'élément. Référez-vous aux constantes de statut pour les valeurs possibles.

repos_text_status

Statut du texte de l'élément dans le référentiel. Ne survient que si update est défini à true. Référez-vous aux constantes de statut pour les valeurs possibles.

prop_status

Statut de la propriété de l'élément. Référez-vous aux constantes de statut pour les valeurs possibles.

repos_prop_status

Statut de la propriété de l'élément dans le référentiel. Ne survient que si update est défini à true. Référez-vous aux constantes de statut pour les valeurs possibles.

locked

Si l'élément est verrouillé. (Défini que si true.)

copied

Si l'élément a été copié ou non (prévu pour l'ajout avec la journalisation). (Défini que si true.)

switched

Si l'élément a changé de référentiel de référence, en utilisant la commande switch. (Défini que si true)

Ces clés ne sont définies que si l'élément est versionné :

name

Nom de base de l'élément dans le référentiel.

url

URL de l'élément dans le référentiel.

repos

URL de base du référentiel.

revision

Révision de l'élément dans la copie de travail.

kind

Type de l'élément, c.-à-d. fichier ou dossier. Référez-vous aux constantes de type pour les valeurs possibles.

schedule

Action prévue pour l'élément, c.-à-d. ajout ou suppression. Les constantes pour ces nombres magiques ne sont pas disponibles, elles peuvent être émulées en utilisant :

<?php
if (!defined('svn_wc_schedule_normal')) {
    define('svn_wc_schedule_normal',  0); // rien de spécial
    define('svn_wc_schedule_add',     1); // élément à ajouter
    define('svn_wc_schedule_delete',  2); // élément à supprimer
    define('svn_wc_schedule_replace', 3); // élément à ajouter et effacer
}
?>
deleted

Si l'élément a été supprimé, mais les révisions parentes existent toujours (Défini que si true.)

absent

Si l'élément est absent, mais que Subversion sait qu'il devrait se trouver ici. (Défini que si true.)

incomplete

Si l'entrée du fichier pour un dossier est incomplète. (Défini que si true.)

cmt_date

Timestamp Unix de la date de la dernière validation. (Non-Affecté par le paramètre update).

cmt_rev

Révision de la dernière livraison. (Non-Affecté par le paramètre update).

cmt_author

Nom de l'auteur de la dernière livraison. (Non-Affecté par le paramètre update).

prop_time

Timestamp Unix représentant la date/heure de la dernière mise à jour des propriétés.

text_time

Timestamp Unix représentant la date/heure de la dernière mise à jour du texte.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction.

<?php
print_r(svn_status(realpath('wc')));
?>

Résultat de l'exemple ci-dessus est similaire à :

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // l'élément a été modifié
        [repos_text_status] => 1 // Aucune information disponible, utiliser update
        [prop_status] => 3 // aucun changement
        [repos_prop_status] => 1 // Aucune information disponible, utiliser update
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // fichier
        [schedule] => 0 // aucune action de prévue
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Voir aussi

add a note

User Contributed Notes 1 note

up
-2
matthijs at fragfrog dot nl
15 years ago
There seems to be an undocumented function svn_info (arguably the proper name for this functionality) that does almost the same as svn_status, but ignores the second parameter.

Unfortunately, neither can directly be used to just retrieve the current revision of a working copy, but a combination of svn_status and SVN_NON_RECURSIVE|SVN_ALL will work; simply perform the following command:

<?php
svn_status(ROOT,  SVN_NON_RECURSIVE|SVN_ALL);
?>

Where ROOT is of course the root of the working directory you wish to examine. One of the entries will be that working directory, including its current status.
To Top