TfsTeamProjectCollection に問い合わせて、サーバー上に新しいバージョンのファイルがあるかどうかを判断できるようにしたいと考えています。実際にファイルをフェッチせずにこれを実行できるようにしたいと考えています。
これはどこかで可能ですか?私はいくつかのスクラッチを行い、これまで空白を描いてきました。
ありがとう。
これは、特定のファイルが最新かどうかを確認する別の方法です。
string file_path = @"your_file_path";
WorkspaceInfo info = Workstation.Current.GetLocalWorkspaceInfo(file_path);
Workspace ws = info.GetWorkspace(new TfsTeamProjectCollection(info.ServerUri));
GetStatus status = ws.Get( new GetRequest(
new ItemSpec ( file_path, RecursionType.Full ),
VersionSpec.Latest ),
GetOptions.Preview );
if(status.NoActionNeeded)
MessegeBox.Show("Latest");
else
MessegeBox.Show("Not Latest");
手順
1)Workspace
ファイル パスを含むを取得する必要があります。を使用しております
Workstation.GetLocalWorkspaceInfo Method (String)
WorkspaceInfo
指定されたファイルを含むワークスペースのプロパティを含むオブジェクトを取得します。
このWorkspaceInfo
オブジェクトを使用して、そのワークスペースのインスタンスを取得できます。
WorkspaceInfo.GetWorkspace Method (TfsTeamProjectCollection)
2)Get
次に、ワークスペース オブジェクトで操作を実行する必要があります。
Workspace.Get Method (GetRequest[], GetOptions)
2 番目のパラメーターにGetOptions
は、6 つの可能なメンバー値があります。それぞれに目的があります。
ファイルをダウンロードする必要がないため、
メンバー値Preview
を使用しますExecutes a get without modifying the disk.
3)オペレーションは、オペレーションのステータスを表すオブジェクトをGet
返します。GetStatus
Workspace.Get
これには、操作の処理中に発生した操作、競合、エラーなどの数に関する情報が含まれGet
ています。
GetStatus
オブジェクトにはいくつかのプロパティがあります。NoActionNeeded
失敗や操作が発生しなかったかどうかを示すフラグを取得するというプロパティを使用します。
操作やエラーが発生しなかった場合、フラグの値はTrueになります。つまり、ファイルはすでに最新バージョンです。それ以外の場合、フラグはFalseになり、ファイルが TFS で利用可能な最新バージョンではないことを意味します。