0

私に似た質問がたくさんありますが、私がやろうとしていることにはまったく触れていません。SharpSVN を使用して、各ファイルの特定のリビジョンを svn から選択したファイルパスに取得できるシンプルなクライアントを作成しています。これは機能していますが、すべてを手動で指定する必要があり、より視覚的にしたいと考えています。

そのために、すべてのリビジョン番号とコメントを 1 つのビューに表示できるリビジョン ウィンドウを作成したいと考えています。しかし、各ログ メッセージに付随するリビジョン番号を取得できないようです。

すなわち:

r3 - r3 に付随するログ メッセージ - (おそらく作成者)
r2 - r2 に付随するログ メッセージ - (おそらく作成者)
r1 - r1 に付随するログ メッセージ - (おそらく作成者)

以下のスニペットは、私がどのようにそれを行おうとしているのかを示していますが、 info.Revision away は最新のリビジョンのみを出力します。

//SvnUriTarget is a wrapper class for SVN repository URIs
SvnUriTarget target = new SvnUriTarget(tbRepoURI.Text);

//============
Collection<SvnLogEventArgs> logitems = new Collection<SvnLogEventArgs>();

SvnLogArgs arg = new SvnLogArgs();

client.GetLog(new System.Uri(target.ToString()), arg, out logitems);

SvnLogEventArgs logs;
SvnInfoEventArgs info;
client.GetInfo(target.ToString(), out info);
foreach (var logentry in logitems)
{
    MessageBox.Show(info.Revision + ": " + logentry.LogMessage); // only read ..
}
4

1 に答える 1

1

Revisionforeach ループ中に同じ場所からを読んでいるため、変更されません。

値を取得するためにループする SvnLogEventArgs クラスにもプロパティがあります。先頭からリビジョンを取得するのではなく、それを使用してそのログ エントリのリビジョンを取得する必要があります。LogMessageRevision

コードは次のようになります

//SvnUriTarget is a wrapper class for SVN repository URIs
SvnUriTarget target = new SvnUriTarget(tbRepoURI.Text);

Collection<SvnLogEventArgs> logitems = new Collection<SvnLogEventArgs>();

SvnLogArgs arg = new SvnLogArgs();

client.GetLog(new System.Uri(target.ToString()), arg, out logitems);

foreach (var logentry in logitems)
{
    MessageBox.Show(logentry.Revision + ": " + logentry.LogMessage);
}
于 2013-08-08T06:47:08.040 に答える