我只是想知道我是否遗漏了文档中的任何内容,这些内容可以让我获得某个版本的文件中包含的行数(或者甚至从 SvnChangeItem 更改的行数,这也很好)而不必直接将文件导出到文件系统并对其进行解析,计算每一行。
任何帮助,将不胜感激。谢谢。
元数据(如当前行数)不包含在存储库中,但您可以在不做凌乱的临时文件的情况下获取文件。
为简洁起见,排除代码以迭代修订等。
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++;
}
}
}
不,您坚持使用您命名的解决方案。导出到临时文件,计算行数,删除文件。如果您逐个文件执行此操作,则该操作相当昂贵。如果您需要对每个文件进行行数并重用工作目录以供将来运行,那么获取整个 repo 可能会更好。