Als je Subversion revisie informatie vanuit andere programma's wilt gebruiken, dan kun je de COM interface van SubWCRev gebruiken. Het aan te maken object is SubWCRev.object
en de volgende methodes kunnen gebruikt worden:
Tabel 6.4. COM/automatiseringsmethoden worden ondersteund
Methode | Beschrijving |
---|---|
.GetWCInfo | Deze methode doorzoekt de werkkopie en verzamelt de revisie informatie. Je moet deze natuurlijk eerst aanroepen voordat je de informatie gebruikt voor de andere methodes. De eerste parameter is het pad. De tweede parameter moet waar zijn als je de revisies van de mappen mee wilt nemen. Dit komt overeen met de -f opdrachtregel optie. De derde optie moet waar zijn als je svn:externals mee wilt nemen. Dit komt overeen met de -e opdrachtregel optie. |
.GetWCInfo2 | The same as GetWCInfo() but with a fourth parameter that sets the equivalent to the -E command line switch. |
.Revision | The highest commit revision in the working copy. Equivalent to $WCREV$ . |
.Date | The commit date/time of the highest commit revision. Equivalent to $WCDATE$ . |
.Author | De auteur van de hoogste vastgelegde revisie, oftewel de laatste persoon die wijzigingen heeft vastgelegd. |
.MinRev | De minimale bijgewerkte versie, zoals weergegeven in $WCRANGE$ |
.MaxRev | De maximale bijgewerkte revisie, zoals weergegeven in $WCRANGE$ |
.HasModifications | True, wanneer er lokale aanpassingen zijn |
.HasUnversioned | True if there are unversioned items |
.Url | Replaced with the repository URL of the working copy path used in GetWCInfo . Equivalent to $WCURL$ . |
.IsSvnItem | True, wanneer het item opgenomen is in versiebeheer. |
.NeedsLocking | True, als het item de eigenschap svn:needs-lock heeft ingesteld. |
.IsLocked | True, als het item vergrendeld is. |
.LockCreationDate | De regel geeft de datum waarop de blokkade geplaatst is of is leeg als er geen blokkade is. |
.LockOwner | De regel bevat de eigenaar van de blokkade of is leeg als het object niet geblokkeerd is. |
.LockComment | Het bericht dat meegegeven werd toen een blokkade geplaatst is. |
Het volgende voorbeeld geeft aan hoe je de interface zou kunnen gebruiken.
// 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);
Het volgende voorbeeld beschrijft hoe je de SubWCRev COM objecten vanuit C# moet gebruiken:
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"); }