大家好聪明!
鉴于我的SubVersion存储库中任何应用程序的版本号,我如何(使用SharpSvn):
我的存储库以这种方式组织:
Application1
Trunk
<Application files>
Branches
BranchName1
<Application files>
BranchName2
<Application files>
...
Application2
Trunk
<Application files>
Branches
BranchName1
<Application files>
BranchName2
<Application files>
...
我想我应该以某种方式检索使用该特定修订号更改的文件集,然后查看Svn文件路径?
可以完成吗?
答案 0 :(得分:1)
在SVN中,修订号对整个存储库是全局的,因此没有“主干修订版”。但是,您可以采取哪些措施来确定哪些路径受到修订的影响,运行类似于svn log -r<REV> --verbose
。
在SharpSvn中有方法SvnClient.LogMethod(Uri, SvnLogArgs, EventHandler<SvnLogEventArgs>)
,它允许您指定可用于确定受影响路径的EventHandler和SvnClient.GetLog(Uri, SvnLogArgs, out Collection<SvnLogEventArgs>)
,它为您提供了可用于记录的日志消息的集合找出受影响的路径。
http://docs.sharpsvn.net/current/html/M_SharpSvn_SvnClient_Log_4.htm
小例子(GetLog()
):
using (var client = new SvnClient())
{
SvnLogArgs logArgs = new SvnLogArgs();
Collection<SvnLogEventArgs> logResults;
if (client.GetLog(new Uri("RepositoryUri"), logArgs, out logResults))
{
foreach (var logResult in logResults)
{
if (logResult.ChangedPaths.Contains("searchedPath"))
{
// do something with the information
}
}
}
return;
}