The Subversion functions work quite well for me, after some searching. I needed some time though to find out how they all worked together, but this is a basic example of svn_fs_is_file:
<?php
# Get a handle to the on-disk repository. Note that this
# is NOT a checked out project, but the actual svn repository!
$repos_handle = svn_repos_open('/var/lib/svn');
$fs_handle = svn_repos_fs($repos_handle);
# Now we need to open a revision because that's what the
# svn_fs_* methods need. You'll probably want the latest
# revision and we have a helper method for that.
$youngest_rev = svn_fs_youngest_rev($fs_handle);
$fs_rev_handle = svn_fs_revision_root($fs_handle, $youngest_rev);
# Now we can actually start doing stuff, for example the
# svn_fs_is_file call:
print_r(svn_fs_is_file($fs_rev_handle, '/a-file.txt'));
?>
There is one important thing to note about this all. You cannot let the handles expire while doing any calls to svn_fs_*. When implementing a helper class, I cached the first and third handle, but not the second one. PHP crashes hard when you do this. Keep references to all handles you get while you're calling the svn_fs_* methods.
Fonctions SVN
Sommaire
- svn_add — Prévoit l'ajout d'un élément dans le dossier de travail
- svn_auth_get_parameter — Récupère un paramètre d'identification
- svn_auth_set_parameter — Définit un paramètre d'identification
- svn_cat — Récupère le contenu d'un fichier du dépôt
- svn_checkout — Synchronise une copie de travail depuis un dépôt
- svn_cleanup — Nettoie, récursivement, un dossier de travail, en finissant les opérations en attente et en supprimant les verrous
- svn_client_version — Récupère la version des bibliothèques clientes SVN
- svn_commit — Envoie les modifications depuis la copie locale vers le dépôt
- svn_diff — Compare deux chemins, récursivement
- svn_fs_abort_txn — Stoppe une transaction
- svn_fs_apply_text — Crée et retourne un flux à utiliser pour modifier un fichier
- svn_fs_begin_txn2 — Crée une nouvelle transaction
- svn_fs_change_node_prop — Retourne TRUE si tout est Ok, FALSE sinon
- svn_fs_check_path — Détermine quel type d'élément est pointé par un chemin donné
- svn_fs_contents_changed — Retourne TRUE si le contenu est différent, FALSE sinon
- svn_fs_copy — Copie un fichier ou un dossier
- svn_fs_delete — Supprime un fichier ou un dossier
- svn_fs_dir_entries — Énumère les éléments d'un dossier
- svn_fs_file_contents — Retourne un flux afin d'accéder au contenu d'un fichier pour une version donnée
- svn_fs_file_length — Retourne le taille d'un fichier pour une version donnée
- svn_fs_is_dir — Retourne TRUE si le chemin pointe vers un dossier, FALSE sinon
- svn_fs_is_file — Retourne TRUE si le chemin pointe vers un fichier, FALSE sinon
- svn_fs_make_dir — Crée un nouveau dossier
- svn_fs_make_file — Crée un fichier vide
- svn_fs_node_created_rev — Retourne la version dans laquelle le chemin, sous fsroot, a été créé
- svn_fs_node_prop — Retourne la valeur d'une propriété d'un noeud
- svn_fs_props_changed — Retourne TRUE si les props sont différents, FALSE sinon
- svn_fs_revision_prop — Récupère la valeur d'une propriété nommée
- svn_fs_revision_root — Récupère un gestionnaire sur une version spécifique du dépôt
- svn_fs_txn_root — Crée et retourne une transaction
- svn_fs_youngest_rev — Retourne le numéro de la version la plus jeune du système de fichier
- svn_import — Importe un chemin non-versionné dans un dépôt
- svn_log — Récupère le message d'historisation d'une URL du dépôt
- svn_ls — Retourne la liste du contenu d'un dossier d'un dépôt
- svn_repos_create — Crée un nouveau dépôt Subversion
- svn_repos_fs_begin_txn_for_commit — Crée une nouvelle transaction
- svn_repos_fs_commit_txn — Valide une transaction et retourne la nouvelle version
- svn_repos_fs — Récupère un gestionnaire du système de fichiers
- svn_repos_hotcopy — Effectue une copie à chaud du dépôt
- svn_repos_open — Ouvre un verrou partagé sur un dépôt
- svn_repos_recover — Exécute les procédures de récupération du dépôt
- svn_status — Récupère le statut des fichiers et des dossiers de la copie de travail
- svn_update — Met à jour la copie de travail
Fonctions SVN
Pieter van Ginkel
21-Mar-2008 09:23
21-Mar-2008 09:23
tbrendstrup
19-Mar-2008 10:49
19-Mar-2008 10:49
"[Editorial note: These constants are defined by the Subversion library itself and may change without notice (although things tend to be quite stable).]"
The subversion developers have a policy not to change stuff like this without changing the major version number, so these should be valid at least until subversion 2.0.0 is released. (more values might be added, but the existing ones won't change).
pierre dot beaumadier at rhapso dot fr
03-Oct-2007 03:59
03-Oct-2007 03:59
[Editorial note: These constants are defined by the Subversion library itself and may change without notice (although things tend to be quite stable).]
For information, here are the numeric values I got for the constants :
Working copy status constants :
* svn_wc_status_none => 1
* svn_wc_status_unversioned => 2
* svn_wc_status_normal => 3
* svn_wc_status_added => 4
* svn_wc_status_missing => 5
* svn_wc_status_deleted => 6
* svn_wc_status_replaced => 7
* svn_wc_status_modified => 8
* svn_wc_status_merged => 9
* svn_wc_status_conflicted => 10
* svn_wc_status_ignored => 11
* svn_wc_status_obstructed => 12
* svn_wc_status_external => 13
* svn_wc_status_incomplete => 14
Node type constants :
* svn_node_none => 0
* svn_node_file => 1
* svn_node_dir => 2
* svn_node_unknown => 3
