Interface COM

Si vous avec besoin d'accéder à l'information sur les révisions depuis d'autres programmes que Subversion, vous pouvez utiliser l'objet COM SubWCRev comme interface. L'objet à créer est SubWCRev.object, et les méthodes suivantes sont supportées :

Tableau 6.4. Les méthodes COM/automation sont supportées

MéthodeDescription
.GetWCInfoCette méthode parcourt la copie de travail en regroupant les informations de révision. Naturellement, vous devez l'appeler avant d'utiliser les autres méthodes pour accéder à l'information. Le premier paramètre est le chemin. Le deuxième paramètre doit être vrai si vous souhaitez inclure les révisions de dossier. Équivalent à la commande -f. Le troisième paramètre doit être vrai si vous voulez inclure svn:externals. Équivalent à la commande -e.
.GetWCInfo2The same as GetWCInfo() but with a fourth parameter that sets the equivalent to the -E command line switch.
.RevisionLa plus haute révision de livraison dans la copie de travail. Equivalent à $WCREV$.
.DateLa date/heure de livraison de la plus haute révision de livraison. Equivalent à $WCDATE$.
.AuthorL'auteur de la version de livraison la plus élevée, c'est à dire, la dernière personne à avoir fait une livraison.
.MinRevLe numéro de version le moins élevé, comme montré dans $WCRANGE$.
.MaxRevLe numéro de version le plus élevé, comme montré dans $WCRANGE$.
.HasModificationsVrais s'il y a des modifications locales.
.HasUnversionedVrai s'il existe des éléments non versionnés
.UrlRemplacé par l'URL du référentiel de la copie de travail utilisée dans GetWCInfo. Equivalent à $WCURL$.
.IsSvnItemVrai si l'élément est versionné
.NeedsLockingVrai si la propriété svn:needs-lock est activée pour l'élément.
.IsLockedVrai si l'élément est verrouillé
.LockCreationDateChaîne de caractère représentant la date à laquelle le verrou a été créé, ou une chaîne vide si l'élément n'est pas verrouillé.
.LockOwnerChaîne de caractère représentant le propriétaire du verrou ou une chaîne vide si l'élément n'est pas verrouillé.
.LockCommentLe message renseigné au moment du verrouillage.


Les exemples suivants montrent comment l'interface devrait être utilisée.

// testCOM.js - fichier javascript
// script de test pour le l'objet SubWCRev COM/Automatisation

filesystem = new ActiveXObject("Scripting.FileSystemObject");

revObject1 = new ActiveXObject("SubWCRev.object");
revObject2 = new ActiveXObject("SubWCRev.object");
revObject3 = new ActiveXObject("SubWCRev.object");
revObject4 = new ActiveXObject("SubWCRev.object");

revObject1.GetWCInfo(
    filesystem.GetAbsolutePathName("."), 1, 1);
revObject2.GetWCInfo(
    filesystem.GetAbsolutePathName(".."), 1, 1);
revObject3.GetWCInfo(
    filesystem.GetAbsolutePathName("SubWCRev.cpp"), 1, 1);
revObject4.GetWCInfo2(
    filesystem.GetAbsolutePathName("..\\.."), 1, 1, 1);

wcInfoString1 = "Révision = " + revObject1.Revision +
                "\nRévision Minimum = " + revObject1.MinRev +
                "\nRévision Maximum = " + revObject1.MaxRev +
                "\nDate = " + revObject1.Date +
                "\nURL = " + revObject1.Url + "\nAuteur = " +
                revObject1.Author + "\nAModifications = " +
                revObject1.HasModifications + "\nEstElémentSVN = " +
                revObject1.IsSvnItem + "\nRequiertVerrouillage = " +
                revObject1.NeedsLocking + "\nEstVerrouillé = " +
                revObject1.IsLocked + "\nDateCréationVerrou = " +
                revObject1.LockCreationDate + "\nPropriétaireVerrou = " +
                revObject1.LockOwner + "\nCommentaireVerrou = " +
                revObject1.LockComment;
wcInfoString2 = "Révision = " + revObject2.Revision +
                "\nRévision Minimum = " + revObject2.MinRev +
                "\nRévision Maximum = " + revObject2.MaxRev +
                "\nDate = " + revObject2.Date +
                "\nURL = " + revObject2.Url + "\nAuteur = " +
                revObject2.Author + "\nAModifications = " +
                revObject2.HasModifications + "\nEstElémentSVN = " +
                revObject2.IsSvnItem + "\nRequiertVerrouillage = " +
                revObject2.NeedsLocking + "\nEstVerrouillé = " +
                revObject2.IsLocked + "\nDateCréationVerrou = " +
                revObject2.LockCreationDate + "\nPropriétaireVerrou = " +
                revObject2.LockOwner + "\nCommentaireVerrou = " +
                revObject2.LockComment;
wcInfoString3 = "Révision = " + revObject3.Revision +
                "\nRévision Minimum = " + revObject3.MinRev +
                "\nRévision Maximum = " + revObject3.MaxRev +
                "\nDate = " + revObject3.Date +
                "\nURL = " + revObject3.Url + "\nAuteur = " +
                revObject3.Author + "\nAModifications = " +
                revObject3.HasModifications + "\nEstElémentSVN = " +
                revObject3.IsSvnItem + "\nRequiertVerrouillage = " +
                revObject3.NeedsLocking + "\nEstVerrouillé = " +
                revObject3.IsLocked + "\nDateCréationVerrou = " +
                revObject3.LockCreationDate + "\nPropriétaireVerrou = " +
                revObject3.LockOwner + "\nCommentaireVerrou = " +
                revObject3.LockComment;
wcInfoString4 = "Révision = " + revObject4.Revision +
                "\nRévision Minimum = " + revObject4.MinRev +
                "\nRévision Maximum = " + revObject4.MaxRev +
                "\nDate = " + revObject4.Date +
                "\nURL = " + revObject4.Url + "\nAuteur = " +
                revObject4.Author + "\nAModifications = " +
                revObject4.HasModifications + "\nEstElémentSVN = " +
                revObject4.IsSvnItem + "\nRequiertVerrouillage = " +
                revObject4.NeedsLocking + "\nEstVerrouillé = " +
                revObject4.IsLocked + "\nDateCréationVerrou = " +
                revObject4.LockCreationDate + "\nPropriétaireVerrou = " +
                revObject4.LockOwner + "\nCommentaireVerrou = " +
                revObject4.LockComment;

WScript.Echo(wcInfoString1);
WScript.Echo(wcInfoString2);
WScript.Echo(wcInfoString3);
WScript.Echo(wcInfoString4);

La liste suivante montre comment utiliser l'objet SubWCRev COM de C#:

en utilisant LibSubWCRev;
SubWCRev sub = new SubWCRev();
sub.GetWCInfo("C:\\PathToMyFile\\MyFile.cc", true, true);
if (sub.IsSvnItem == true)
{
    MessageBox.Show("versionné");
}
else
{
    MessageBox.Show("non versionné");
}