ここにあるコードに従ってください: ファイルが SharpSvn のソース管理下にあるかどうかを確認するには?
指定されたフォルダーを反復処理し、すべてのファイルのステータスを出力する小さなユーティリティ アプリケーションを作成しようとしています。
private void btnCheckSVN_Click(object sender, EventArgs e)
{
ParseSVNResults(CheckSVN());
}
private Collection<SvnStatusEventArgs> CheckSVN()
{
string path = @"C:\AMG\trunk\AMC";
if (!Directory.Exists(path))
return null;
DevExpress.Utils.WaitDialogForm wait = new DevExpress.Utils.WaitDialogForm();
wait.Caption = "Please wait, loading SVN file statuses. This may take a moment.";
wait.Caption += Environment.NewLine + path;
wait.Show();
SvnClient client = new SvnClient();
SvnStatusArgs sa = new SvnStatusArgs();
sa.Depth = SvnDepth.Infinity;
Collection<SvnStatusEventArgs> statuses;
client.GetStatus(path, sa, out statuses);
wait.Close();
return statuses;
}
private void ParseSVNResults(Collection<SvnStatusEventArgs> results)
{
if (results == null)
return;
int modified = 0;
int unversioned = 0;
foreach (SvnStatusEventArgs item in results)
{
memoEditSVNFiles.Text += item.LocalContentStatus.ToString() + " -- " + item.Path + Environment.NewLine;
if (item.LocalContentStatus.ToString() == "Modified")
modified++;
else if (item.LocalContentStatus.ToString() == "NotVersioned")
unversioned++;
}
memoEditSVNFiles.Text += Environment.NewLine + "Modified: " + modified + Environment.NewLine;
memoEditSVNFiles.Text += "Not Versioned: " + unversioned + Environment.NewLine;
memoEditSVNFiles.Text += "Total: " + results.Count;
}
コードを実行すると、合計 147 個のファイルとフォルダーが得られます。実際のフォルダーには数千のファイルがあります。見ているファイルが多すぎて、SharpSVN がしばらくすると終了する可能性はありますか?
編集; 約 100 個のテキスト ファイルを作成し、30 個を 3 つのフォルダーに入れ、それらを「ネスト」してみました。だから私は持っています。
C:\AMG\trunk\test には ~30 個のファイルがあります C:\AMG\trunk\test\Folder1 には ~30 個のファイルがあります C:\AMG\trunk\test\Folder1\Sub にはさらに 30 個のファイルがあります
これをリポジトリにコミットせずに、コード スニペットで指定されたパスではなく C:\AMG\trunk\test で上記のコードを実行すると、出力には合計 1 つのファイルが表示されます。