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
Metod | Opis |
---|---|
.GetWCInfo | Ovaj 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. |
.GetWCInfo2 | Isto kao GetWCInfo() ali sa četvrtim parametrom koji se podešava isto kao -E prekidač komandne linije. |
.Revision | Najviša urezana revizija u radnoj kopiji. Ekvivalent sa $WCREV$ . |
.Date | Urezivanje datm/vreme najviše urezane revizije. Ekvivalent sa $WCDATE$ . |
.Author | Autor najviše urezane revizije, to je, poslednja osoba koja je urezala izmene u radnu kopiju. |
.MinRev | Minimum obnovljena revizija, kao što je prikazano u $WCRANGE$ |
.MaxRev | Maksimum obnovljena revizija, kao što je prikazano u $WCRANGE$ |
.HasModifications | Tačno ako postoji lokalna izmena |
.HasUnversioned | Istina ako postoje neverzionisane stavke |
.Url | Zamenjeno sa spremištem URL putanje radne kopije korišćene u GetVCInfo . Ekvivalent sa $WCURL$ . |
.IsSvnItem | Istina ako je stavka verzionisana. |
.NeedsLocking | Istina ako stavka ima svn:needs-lock podešenu osobinu. |
.IsLocked | Istina ako je stavka zaključana. |
.LockCreationDate | String koji reprezentuje datum kada je katanac kreiran, ili prazan string ako stavka nije zaključana. |
.LockOwner | String koji rprezentuje vlasnika katanca, ili prazan string ako stavka nije zaključana. |
.LockComment | Poruka 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"); }