检索修订号列表及其关联的修订注释
本文关键字:关联 注释 列表 检索 | 更新日期: 2023-09-27 18:26:57
有很多类似于我的问题,但没有一个完全涉及我要做的事情。我正在使用SharpSVN编写一个简单的客户端,它可以将svn中的每个文件的特定修订获取到我选择的文件路径。我已经完成了这项工作,但我必须手工指定所有内容,我希望它更直观。
为此,我想创建一个修订窗口,可以在一个视图中显示所有修订号和注释。但是,我似乎无法获得每个日志消息的修订号。
即:
r3-与r3-(甚至可能是作者)一起的日志消息
r2-与r2一起的日志消息-(甚至可能是作者)
r1-与r1一起的日志消息-(甚至可能是作者)
下面的片段显示了我是如何尝试的,但信息。Revision aways仅打印最新修订。
//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 ..
}
在foreach循环期间,您正在从同一位置读取Revision
,这就是为什么它不会更改。
您循环以获取LogMessage
值的SvnLogEventArgs类也有Revision
属性,您应该使用它来获取该日志项的修订,而不是从头部获取修订
所以代码可能看起来像这个
//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);
}