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éthode | Description |
|---|---|
| .GetWCInfo | Cette 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. |
| .GetWCInfo2 | The same as GetWCInfo() but with a fourth parameter that sets the equivalent to the -E command line switch. |
| .Revision | La plus haute révision de livraison dans la copie de travail. Equivalent à $WCREV$. |
| .Date | La date/heure de livraison de la plus haute révision de livraison. Equivalent à $WCDATE$. |
| .Author | L'auteur de la version de livraison la plus élevée, c'est à dire, la dernière personne à avoir fait une livraison. |
| .MinRev | Le numéro de version le moins élevé, comme montré dans $WCRANGE$. |
| .MaxRev | Le numéro de version le plus élevé, comme montré dans $WCRANGE$. |
| .HasModifications | Vrais s'il y a des modifications locales. |
| .HasUnversioned | Vrai s'il existe des éléments non versionnés |
| .Url | Remplacé par l'URL du référentiel de la copie de travail utilisée dans GetWCInfo. Equivalent à $WCURL$. |
| .IsSvnItem | Vrai si l'élément est versionné |
| .NeedsLocking | Vrai si la propriété svn:needs-lock est activée pour l'élément. |
| .IsLocked | Vrai si l'élément est verrouillé |
| .LockCreationDate | Chaî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é. |
| .LockOwner | Chaîne de caractère représentant le propriétaire du verrou ou une chaîne vide si l'élément n'est pas verrouillé. |
| .LockComment | Le 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é");
}