【发布时间】:2014-03-20 16:28:56
【问题描述】:
我只想显示存储库的前 100 次提交。我使用 linux-repo 进行了测试:
const int maxSize = 100;
Stopwatch sw = new Stopwatch();
Console.WriteLine( "Getting Commits in own Thread" );
sw.Start();
using( Repository repo = new Repository( path_to_linux_repo ) )
{
ICommitLog commits = repo.Commits.QueryBy( new CommitFilter { Since = "HEAD" } );
int index = 0;
foreach( Commit commit in commits )
{
if( index++ > maxSize ) break;
}
}
sw.Stop();
Console.WriteLine( "Took {0}ms for {1} entries", sw.ElapsedMilliseconds, maxSize );
这个简单的循环在我的机器上占用了 9000 多毫秒。使用提交较少的 repo 时它的速度更快,但为什么在提交很多的 repo 中速度如此之慢? 另一个问题:是否可以只检索给定数量的提交,例如翻页 所有提交?
【问题讨论】:
-
查看 100 次提交肯定不会花那么长时间。如果您将
CommitFilter与SortBy = CommitSortStrategies.None一起使用,它仍然很慢吗? -
没有区别。也花了9000毫秒。即使根本没有任何 CommitFilter。
-
不通过过滤器意味着使用时间排序。这与传递无排序不同。
标签: libgit2sharp