Jos tarvitset Subversion-versiotietoja muissa ohjelmissa, voit käyttää SubWCRev-ohjelman COM-rajapintaa. Luotava olio on SubWCRev.object
, joka tukee seuraavia operaatioita:
Taulu 6.4. Tuetut COM/automaatiomenetelmät
Menetelmä | Kuvaus |
---|---|
.GetWCInfo | Operaatio käy läpi työkopiosi keräten kaiken versiointitiedon. Sinun on ensin kutsuttava tätä, ennen kuin voit käsitellä haettuja tietoja. Ensimmäinen valitsin on polku. Toisen valitsimen tulisi olla true jos haluat ottaa mukaan kansio-ominaisuudet. Sama kuin komentorivivalitsin -f . Kolmannen valitsimen tulisi olla tosi, jos haluat sisällyttää ulkoiset viitteet (svn:externals). Sama kuin komentorivivalitsin -e . |
.GetWCInfo2 | Kuten GetWCInfo() , mutta neljännen parametrin kera, joka asettaa komentoriviparametrille -E saman arvon. |
.Revision | Työkopion suurin versionumero. Sama kuin $WCREV$ . |
.Date | Työkopion suurimman version toimituspäiväys. Sama kuin $WCDATE$ . |
.Author | Suurimman version tekijä, ts. viimeinen henkilö, joka toimitti muutoksia työkopioon. |
.MinRev | Työkopion pienin päivitetty versio, ks. $WCRANGE$ . |
.MaxRev | Työkopion suurin päivitetty versio, kuten $WCRANGE$ kertoo. |
.HasModifications | Tosi jos työkopiossa on paikallisia muutoksia. |
.HasUnversioned | Tosi, jos kohteessa on versioimattomia tiedostoja |
.Url | Korvataan GetWCInfo käytetyn työkopiopolun arkistopaikantimella. Sama kuin $WCURL$ . |
.IsSvnItem | Tosi, jos kohde on versioitu. |
.NeedsLocking | Tosi, jos kohteella on ominaisuus svn:needs-lock asetettuna. |
.IsLocked | Tosi, jos kohde on lukittu. |
.LockCreationDate | Merkkijono, joka sisältää lukon luontipäiväyksen, tai tyhjä merkkijono, jos kohde ei ole lukittu. |
.LockOwner | Merkkijono, joka sisältää lukon omistajan, tai tyhjä merkkijono, jos kohde ei ole lukittu. |
.LockComment | Lukkoa luotaessa annettu viesti. |
Seuraava esimerkki näyttää, miten rajapintaa voi käyttää.
// 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);
Seuraava esimerkki näyttää, miten SubWCRev-ohjelman COM-rajapintaa voi käyttää C#-kielellä:
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"); }