使用SharpSVN api有没有任何方法可以获得修订版文件中包含的行数而不导出它?

时间:2010-08-10 16:19:53

标签: c# .net sharpsvn

我只是想知道我是否遗漏了文档中的任何内容,这些内容允许我获取某个版本中文件中包含的行数(或者甚至是从SvnChangeItem更改的行数,这也不错)必须直接将文件导出到文件系统并通过计算每行进行解析。

任何帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:0)

不,你完全坚持你命名的解决方案。导出到临时文件,计算行数,删除文件。如果你逐个文件地执行这个操作是相当昂贵的。如果需要对每个文件进行行计数并重新使用工作目录以供将来运行,则最好获取整个存储库。

答案 1 :(得分:0)

元数据(如当前行数)不包含在存储库中,但您可以在不执行凌乱的临时文件的情况下获取该文件。

为简洁起见,排除了代码以迭代修订等。

using (var client = new SvnClient())
{
    using (MemoryStream memoryStream = new MemoryStream())
    {
        client.Write(new SvnUriTarget(urlToFile), memoryStream);
        memoryStream.Position = 0;
        var streamReader = new StreamReader(memoryStream);
        int lineCount = 0;
        while (streamReader.ReadLine() != null)
        {
            lineCount++;
        }
    }
}