Wenn sie Zugriff auf Subversion Revisionsinformationen aus anderen Programmen benötigen, können Sie die COM Schnittstelle von SubWCRev benutzen. Das zu erzeugende Objekt heißt SubWCRev.object und unterstützt die folgenden Methoden:
Tabelle 6.3. Unterstützte COM-Automatisierungen
| Method | Beschreibung |
|---|---|
| .GetWCInfo | Diese Methode durchläuft die Arbeitskopie und ermittelt die Revisionsinformationen. Sie muss vor den Methoden aufgerufen werden, die auf diese Informationen zugreifen sollen. Der erste Parameter ist der Pfad. Der zweite Parameter sollte true sein, falls Sie Ordnerrevisionen einschließen wollen. Entspricht dem Schalter -f. Der dritte Parameter sollte true sein, falls Sie svn:externals einschließen wollen. Entspricht dem Schalter -e. |
| .Revision | Die höchste übertragene Revision in der Arbeitskopie. Entspricht $WCREV$. |
| .Date | Datum und Uhrzeit der höchsten übertragenen Revision. Entspricht $WCDATE$ |
| .Author | Der Autor der höchsten übertragenen Revision, das heißt der Person, die die Änderungen in die Arbeitskopie übertragen hat. |
| .MinRev | Die minimale aktualisierte Revision, wie in $WCRANGE$ angezeigt. |
| .MaxRev | Die maximale aktualisierte Revision, wie in $WCRANGE$ angezeigt. |
| .HasModifications | True, falls es lokale Änderungen gibt. |
| .Url | Wird durch die URL des Projektarchivs ersetzt, auf das die an GetWCInfo übergebene Arbeitskopie zeigt. Entspricht $WCURL$. |
Das folgende Beispiel zeigt, wie die Schnittstelle genutzt werden kann.
// testCOM.js - Javaskript Datei
// Testskript für das SubWCRev COM/Automatisierungsobjekt
filesystem = new ActiveXObject("Scripting.FileSystemObject");
SubWCRev1 = new ActiveXObject("SubWCRev.object");
SubWCRev2 = new ActiveXObject("SubWCRev.object");
SubWCRev3 = new ActiveXObject("SubWCRev.object");
SubWCRev1.GetWCInfo(filesystem.GetAbsolutePathName("."), 0, 0);
SubWCRev2.GetWCInfo(filesystem.GetAbsolutePathName(".."), 1, 1);
SubWCRev3.GetWCInfo(filesystem.GetAbsolutePathName("SubWCRev.cpp"),
0, 0);
sInfo1 = "Revision = " + SubWCRev1.Revision +
"\nMin Revision = " + SubWCRev1.MinRev +
"\nMax Revision = " + SubWCRev1.MaxRev +
"\nDate = " + SubWCRev1.Date +
"\nURL = " + SubWCRev1.Url +
"\nAuthor = " + SubWCRev1.Author +
"\nHasMods = " + SubWCRev1.HasModifications;
sInfo2 = "Revision = " + SubWCRev2.Revision +
"\nMin Revision = " + SubWCRev2.MinRev +
"\nMax Revision = " + SubWCRev2.MaxRev +
"\nDate = " + SubWCRev2.Date +
"\nURL = " + SubWCRev2.Url +
"\nAuthor = " + SubWCRev2.Author +
"\nHasMods = " + SubWCRev2.HasModifications;
sInfo3 = "Revision = " + SubWCRev3.Revision +
"\nMin Revision = " + SubWCRev3.MinRev +
"\nMax Revision = " + SubWCRev3.MaxRev +
"\nDate = " + SubWCRev3.Date +
"\nURL = " + SubWCRev3.Url +
"\nAuthor = " + SubWCRev3.Author +
"\nHasMods = " + SubWCRev3.HasModifications;
WScript.Echo(sInfo1);
WScript.Echo(sInfo2);
WScript.Echo(sInfo3);