Pokud potřebujete přístup k informacím revizí Subversion z jiných programů, můžete použít COM rozhraní SubWCRev. Objekt vytvoření je SubWCRev.object a tyto metody jsou podporovány:
Tabulka 6.4. Podporované metody COM/automatizace
| Metoda | Popis |
|---|---|
| .GetWCInfo | Tato metoda prochází pracovní kopii a shromažďuje revize. Přirozeně je třeba toto zavolat předtím, než budete moci přistupovat k informacím pomocí zbývajících metod. První parametr je cesta. Druhý parametr by měl být true, pokud chcete zahrnout revize adresářů. Obdoba přepínače -f příkazové řádky. Třetí parametr by měl být true, pokud chcete zahrnout svn:externals. Obdoba přepínače -e příkazové řádky. |
| .GetWCInfo2 | Stejné jako GetWCInfo() ale se čtvrtým parametrem, který nastavuje ekvivalent přepínače příkazového řádku -E. |
| .Revision | Nejvyšší odevzdaná revize pracovní kopie. Obdoba $WCREV$. |
| .Date | Datum a čas odevzdaní nejvyšší odevzdané revize. Obdoba $WCDATE$. |
| .Author | Autor nejvyšší odevzdané revize, to znamená, poslední člověk, který odevzdal změny do pracovní kopie. |
| .MinRev | Minimální aktualizace revize, jak je uvedeno v $WCRANGE$ |
| .MaxRev | Maximální aktualizace revize, jak je uvedeno v $WCRANGE$ |
| .HasModifications | True, pokud existují místní úpravy |
| .HasUnversioned | Pravda, pokud nejsou žádné položky bez verze |
| .Url | Nahrazeno URL adresou úložiště cesty pracovní kopie použitou v GetWCInfo. Obdoba $WCURL$. |
| .IsSvnItem | True, pokud má položka verzi. |
| .NeedsLocking | True, pokud má položka nastavenu vlastnost svn:needs-lock. |
| .IsLocked | True, pokud je položka uzamčena. |
| .LockCreationDate | Řetězec reprezentující datum, kdy byl zámek vytvořen, nebo prázdný řetězec, pokud položka není uzamčena. |
| .LockOwner | Řetězec představující majitele zámku, nebo prázdný řetězec, pokud položka není uzamčena. |
| .LockComment | Zpráva zadaná při vytvoření zámku. |
Následující příklad ukazuje, jak by rozhraní mohlo být použito.
// testCOM.js - soubor javascript
// zkouškový skript pro SubWCRev COM/objekt automatizace
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 = "Revize = " + revObject1.Revision +
"\nMin Revize = " + revObject1.MinRev +
"\nMax Revize = " + revObject1.MaxRev +
"\nDatum = " + revObject1.Date +
"\nURL = " + revObject1.Url + "\nAutor = " +
revObject1.Author + "\nMáZměny = " +
revObject1.HasModifications + "\nJeZeSvn = " +
revObject1.IsSvnItem + "\nPotřebaZámku = " +
revObject1.NeedsLocking + "\nJeUzamčeno = " +
revObject1.IsLocked + "\nDatumVznikuZámku = " +
revObject1.LockCreationDate + "\nVlastníkZámku = " +
revObject1.LockOwner + "\nKomentářUzamčení = " +
revObject1.LockComment;
wcInfoString2 = "Revize = " + revObject2.Revision +
"\nMin Revize = " + revObject2.MinRev +
"\nMax Revize = " + revObject2.MaxRev +
"\nDatum = " + revObject2.Date +
"\nURL = " + revObject2.Url + "\nAutor = " +
revObject2.Author + "\nMáZměny = " +
revObject2.HasModifications + "\nJeZeSvn = " +
revObject2.IsSvnItem + "\nPotřebaZámku = " +
revObject2.NeedsLocking + "\nJeUzamčeno = " +
revObject2.IsLocked + "\nDatumVznikuZámku = " +
revObject2.LockCreationDate + "\nVlastníkZámku = " +
revObject2.LockOwner + "\nKomentářUzamčení = " +
revObject2.LockComment;
wcInfoString3 = "Revize = " + revObject3.Revision +
"\nMin Revize = " + revObject3.MinRev +
"\nMax Revize = " + revObject3.MaxRev +
"\nDatum = " + revObject3.Date +
"\nURL = " + revObject3.Url + "\nAutor = " +
revObject3.Author + "\nMáZměny = " +
revObject3.HasModifications + "\nJeZeSvn = " +
revObject3.IsSvnItem + "\nPotřebaZámku = " +
revObject3.NeedsLocking + "\nJeUzamčeno = " +
revObject3.IsLocked + "\nDatumVznikuZámku = " +
revObject3.LockCreationDate + "\nVlastníkZámku = " +
revObject3.LockOwner + "\nKomentářUzamčení = " +
revObject3.LockComment;
wcInfoString4 = "Revize = " + revObject4.Revision +
"\nMin Revize = " + revObject4.MinRev +
"\nMax Revize = " + revObject4.MaxRev +
"\nDatum = " + revObject4.Date +
"\nURL = " + revObject4.Url + "\nAutor = " +
revObject4.Author + "\nMáZměny = " +
revObject4.HasModifications + "\nJeZeSvn = " +
revObject4.IsSvnItem + "\nPotřebujeZámek = " +
revObject4.NeedsLocking + "\nJeUzamčeno = " +
revObject4.IsLocked + "\nDatumVznikuZámku = " +
revObject4.LockCreationDate + "\nVlastníkZámku = " +
revObject4.LockOwner + "\nKomentářUzamčení = " +
revObject4.LockComment;
WScript.Echo(wcInfoString1);
WScript.Echo(wcInfoString2);
WScript.Echo(wcInfoString3);
WScript.Echo(wcInfoString4);
Následující seznam je příkladem toho, jak používat SubWCRev COM objekt z C#:
using LibSubWCRev;
SubWCRev sub = new SubWCRev();
sub.GetWCInfo("C:\CestakMemuSouboru\Mujsoubor.cc", true, true);
if (sub.IsSvnItem == true)
{
MessageBox.Show("s verzi");
}
else
{
MessageBox.Show("bez verze");
}