マニュアル

COM インターフェース

Subversion のリビジョン情報を他のプログラムからアクセスする必要がある場合、SubWCRev の COM インターフェースを使用できます。作成するオブジェクトは SubWCRev.object で、以下のメソッドがサポートされています。

表 6.4. サポートされている COM/オートメーションメソッド

メソッド説明
.GetWCInfoこのメソッドは、ワーキングコピーを走査してリビジョン情報を収集します。当然ながら、残りのメソッドを使用して情報にアクセスする前に、これを呼び出す必要があります。最初のパラメータはパスです。2 番目のパラメータは、フォルダーのリビジョンを含める場合は true にする必要があります。-f コマンドラインスイッチと同等です。3 番目のパラメータは、svn:externals を含める場合は true にする必要があります。-e コマンドラインスイッチと同等です。
.GetWCInfo2GetWCInfo() と同じですが、-E コマンドラインスイッチと同等の 4 番目のパラメータがあります。
.Revisionワーキングコピー内の最新のコミットリビジョン。$WCREV$ と同等です。
.Date最新のコミットリビジョンのコミット日時。$WCDATE$ と同等です。
.Author最新のコミットリビジョンの作者、つまり、ワーキングコピーに変更をコミットした最後の人です。
.MinRev$WCRANGE$ に示されている最小更新リビジョン
.MaxRev$WCRANGE$ に示されている最大更新リビジョン
.HasModificationsローカルに変更がある場合は true
.HasUnversionedバージョン管理されていないアイテムがある場合は true
.UrlGetWCInfo で使用されるワーキングコピーパスのリポジトリ URL に置き換えられます。$WCURL$ と同等です。
.RepoRootリポジトリルートの URL に置き換えられます。$REPOROOT$ と同等です。
.IsSvnItemアイテムがバージョン管理されている場合は true。
.NeedsLockingアイテムに svn:needs-lock プロパティが設定されている場合は true。
.IsLockedアイテムがロックされている場合は true。
.LockCreationDateロックが作成された日時を表す文字列。アイテムがロックされていない場合は空の文字列。
.LockOwnerロックの所有者を表す文字列。アイテムがロックされていない場合は空の文字列。
.LockCommentロックが作成されたときに入力されたメッセージ。


次の例は、インターフェースの使用方法を示しています。

// 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);

次のリストは、C# から SubWCRev COM オブジェクトを使用する方法の例です。

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

TortoiseSVN ホームページ