COM Schnittstelle

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

MethodBeschreibung
.GetWCInfoDiese 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.
.RevisionDie höchste übertragene Revision in der Arbeitskopie. Entspricht $WCREV$.
.DateDatum und Uhrzeit der höchsten übertragenen Revision. Entspricht $WCDATE$
.AuthorDer Autor der höchsten übertragenen Revision, das heißt der Person, die die Änderungen in die Arbeitskopie übertragen hat.
.MinRevDie minimale aktualisierte Revision, wie in $WCRANGE$ angezeigt.
.MaxRevDie maximale aktualisierte Revision, wie in $WCRANGE$ angezeigt.
.HasModificationsTrue, falls es lokale Änderungen gibt.
.UrlWird 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);