ЦОМ интерфејс

Ако треба да приступите Субверзијиној ревизиојиној информацији из других програма, можете користити ЦОМ интерфејс SubWCRev. Објекат који се креира је SubWCRev.object, и следећи методи су подржани:

Табела 6.4. ЦОМ/аутоматизација методе подржане

МетодОпис
.GetWCInfoОвај метод прелази радну копију сакупљајући ревизионе информације. Природно морате ово позвати пре него приступите информацијама користећи преостале мотоде. Први параметар је путања. Други параметар треба да буде истинит ако желите да укључите ревизију фолдера. Еквивалент са прекидачима командне линије. Трећи параметар треба да буде истина ако желите да укључите svn:externals. Еквивалент са прекидачима командне линије.
.GetWCInfo2Исто као GetWCInfo() али са четвртим параметром који се подешава исто као -E прекидач командне линије.
.RevisionНајвиша урезана ревизија у радној копији. Еквивалент са $WЦРЕВ$.
.DateУрезивање датм/време највише урезане ревизије. Еквивалент са $WЦДАТЕ$.
.AuthorАутор највише урезане ревизије, то је, последња особа која је урезала измене у радну копију.
.MinRevМинимум обновљена ревизија, као што је приказано у $WЦРАНГЕ$
.MaxRevМаксимум обновљена ревизија, као што је приказано у $WЦРАНГЕ$
.HasModificationsТачно ако постоји локална измена
.HasUnversionedИстина ако постоје неверзионисане ставке
.UrlЗамењено са спремиштем УРЛ путање радне копије коришћене у ГетВЦИнфо. Еквивалент са $WЦУРЛ$.
.IsSvnItemИстина ако је ставка верзионисана.
.NeedsLockingИстина ако ставка има svn:needs-lock подешену особину.
.IsLockedИстина ако је ставка закључана.
.LockCreationDateСтринг који репрезентује датум када је катанац креиран, или празан стринг ако ставка није закључана.
.LockOwnerСтринг који рпрезентује власника катанца, или празан стринг ако ставка није закључана.
.LockCommentПорука унета када је катанац креиран.


Следећи пример приказује како интерфејс може да се користи.

// testCOM.js - javascript file
// test script for the SubWCRev COM/Automation-object

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 = "Revision = " + revObject1.Revision +
                "\nMin Revision = " + revObject1.MinRev +
                "\nMax Revision = " + revObject1.MaxRev +
                "\nDate = " + revObject1.Date +
                "\nURL = " + revObject1.Url + "\nAuthor = " +
                revObject1.Author + "\nHasMods = " +
                revObject1.HasModifications + "\nIsSvnItem = " +
                revObject1.IsSvnItem + "\nNeedsLocking = " +
                revObject1.NeedsLocking + "\nIsLocked = " +
                revObject1.IsLocked + "\nLockCreationDate = " +
                revObject1.LockCreationDate + "\nLockOwner = " +
                revObject1.LockOwner + "\nLockComment = " +
                revObject1.LockComment;
wcInfoString2 = "Revision = " + revObject2.Revision +
                "\nMin Revision = " + revObject2.MinRev +
                "\nMax Revision = " + revObject2.MaxRev +
                "\nDate = " + revObject2.Date +
                "\nURL = " + revObject2.Url + "\nAuthor = " +
                revObject2.Author + "\nHasMods = " +
                revObject2.HasModifications + "\nIsSvnItem = " +
                revObject2.IsSvnItem + "\nNeedsLocking = " +
                revObject2.NeedsLocking + "\nIsLocked = " +
                revObject2.IsLocked + "\nLockCreationDate = " +
                revObject2.LockCreationDate + "\nLockOwner = " +
                revObject2.LockOwner + "\nLockComment = " +
                revObject2.LockComment;
wcInfoString3 = "Revision = " + revObject3.Revision +
                "\nMin Revision = " + revObject3.MinRev +
                "\nMax Revision = " + revObject3.MaxRev +
                "\nDate = " + revObject3.Date +
                "\nURL = " + revObject3.Url + "\nAuthor = " +
                revObject3.Author + "\nHasMods = " +
                revObject3.HasModifications + "\nIsSvnItem = " +
                revObject3.IsSvnItem + "\nNeedsLocking = " +
                revObject3.NeedsLocking + "\nIsLocked = " +
                revObject3.IsLocked + "\nLockCreationDate = " +
                revObject3.LockCreationDate + "\nLockOwner = " +
                revObject3.LockOwner + "\nLockComment = " +
                revObject3.LockComment;
wcInfoString4 = "Revision = " + revObject4.Revision +
                "\nMin Revision = " + revObject4.MinRev +
                "\nMax Revision = " + revObject4.MaxRev +
                "\nDate = " + revObject4.Date +
                "\nURL = " + revObject4.Url + "\nAuthor = " +
                revObject4.Author + "\nHasMods = " +
                revObject4.HasModifications + "\nIsSvnItem = " +
                revObject4.IsSvnItem + "\nNeedsLocking = " +
                revObject4.NeedsLocking + "\nIsLocked = " +
                revObject4.IsLocked + "\nLockCreationDate = " +
                revObject4.LockCreationDate + "\nLockOwner = " +
                revObject4.LockOwner + "\nLockComment = " +
                revObject4.LockComment;

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

Следећи пример приказује како интерфејс може да се користи СубВЦРев ЦОМ објекат из Ц#:

using LibSubWCRev;
SubWCRev sub = new SubWCRev();
sub.GetWCInfo("C:\\PathToMyFile\\MyFile.cc", true, true);
if (sub.IsSvnItem == true)
{
    MessageBox.Show("versioned");
}
else
{
    MessageBox.Show("not versioned");
}