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