COM interfejs

Ako treba da pristupite Subverzijinoj reviziojinoj informaciji iz drugih programa, možete koristiti COM interfejs SubWCRev. Objekat koji se kreira je SubWCRev.object, i sledeći metodi su podržani:

Tabela 6.4. COM/automatizacija metode podržane

MetodOpis
.GetWCInfoOvaj metod prelazi radnu kopiju sakupljajući revizione informacije. Prirodno morate ovo pozvati pre nego pristupite informacijama koristeći preostale motode. Prvi parametar je putanja. Drugi parametar treba da bude istinit ako želite da uključite reviziju foldera. Ekvivalent sa -f prekidačima komandne linije. Treći parametar treba da bude istina ako želite da uključite svn:externals. Ekvivalent sa -e prekidačima komandne linije.
.GetWCInfo2Isto kao GetWCInfo() ali sa četvrtim parametrom koji se podešava isto kao -E prekidač komandne linije.
.RevisionNajviša urezana revizija u radnoj kopiji. Ekvivalent sa $WCREV$.
.DateUrezivanje datm/vreme najviše urezane revizije. Ekvivalent sa $WCDATE$.
.AuthorAutor najviše urezane revizije, to je, poslednja osoba koja je urezala izmene u radnu kopiju.
.MinRevMinimum obnovljena revizija, kao što je prikazano u $WCRANGE$
.MaxRevMaksimum obnovljena revizija, kao što je prikazano u $WCRANGE$
.HasModificationsTačno ako postoji lokalna izmena
.HasUnversionedIstina ako postoje neverzionisane stavke
.UrlZamenjeno sa spremištem URL putanje radne kopije korišćene u GetVCInfo. Ekvivalent sa $WCURL$.
.IsSvnItemIstina ako je stavka verzionisana.
.NeedsLockingIstina ako stavka ima svn:needs-lock podešenu osobinu.
.IsLockedIstina ako je stavka zaključana.
.LockCreationDateString koji reprezentuje datum kada je katanac kreiran, ili prazan string ako stavka nije zaključana.
.LockOwnerString koji rprezentuje vlasnika katanca, ili prazan string ako stavka nije zaključana.
.LockCommentPoruka uneta kada je katanac kreiran.


Sledeći primer prikazuje kako interfejs može da se koristi.

// 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);

Sledeći primer prikazuje kako interfejs može da se koristi SubVCRev COM objekat iz C#:

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");
}