如何确定用于使用SharpSvn创建分支的主干修订?

时间:2016-01-07 12:56:42

标签: svn sharpsvn

我目前正在构建一个ChangeLog生成器,它通过将 / trunk 的修订版与 / branch /...进行区分来创建这样的日志(其中是从 / trunk 某点创建的,以查看哪些提交不在分支中(然后执行一些奇特的Redmine查询)。

为了最小化日志范围,我想根据用于创建分支的修订版优化查询作为我的偏移量。

我知道TortoiseSVN的停止复制/重命名功能,以确定用于创建特定分支或标记的修订。

如何通过SharpSvn实现这一目标 - 或者是否有更简单的方法来确定差异(简化请求:我只会对降序分支进行差异 / trunk 。)。 / p>

2 个答案:

答案 0 :(得分:0)

我使用以下代码使用它 - 但我不确定这是否是最优雅的方式:

var svnClient = new SvnClient();
svnClient.GetLog(new Uri("http://..../REPOSITORY/BRANCH/FOO",
                 new SvnLogArgs
                 {
                   StrictNodeHistory = true
                 },
                 out logItems);
var initRevision = logItems.OrderBy(arg => arg.Revision)
                           .First();
var changedPath = initRevision.ChangedPaths.Single();
//changedPath.CopyFromRevision
//changedPath.CopyFromPath

让我感到困惑的是,我必须获取整个日志,然后订购它以获得初始修订,用于检索CopyFromRevision和{{ 1}}属性。

答案 1 :(得分:0)

如果你保持你的分支相对相关,你可能可以使用Subversion的一些mergeinfo助手来完成决定一个分支而不是另一个分支的大部分繁重工作。

但是如果你使用严格的项目政策来做事情可能比这更容易。 Subversion尝试以100%通用的方式解决问题,这可能符合您的要求,也可能不符合您的要求。