![](/img/trans.png)
[英]Count the number of times the file was changed in the local repository with LibGit2Sharp
[英]LibGit2Sharp Count how often a file has changed
我有一个超过10.000个条目的存储库。 我不想照顾重命名的文件。 计算对文件所做的更改数量的最佳方法是什么?
我的想法是遍历所有提交,并将文件的target.sha及其父提交进行比较。 如果SHA相同,则文件未更改。 如果SHA不同,则发现文件更改,这意味着这是新版本。
foreach(Commit c in repository.Commits)
{
//DO THE WORK
}
这需要一些时间,但是这是我目前可以获得的最快速度。
也许有人有更好的主意?
您描述的方式基本上和您将要获得的一样快。 剩下的就是针对您的解决方案实施而进行的任何优化,但是如果没有发布代码,我们将无法对此发表评论。
比较导致文件的树,而不是仅比较文件的树,可能节省一些分配和编组成本; 但是从算法上讲,您真的不会比比较树条目更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.