public IEnumerable<RevisionRange> GetFromAndBefore(RevisionId @from, RevisionId to, int pageSize)
{
Fetch();
var revWalk = CreateRevWalker();
try
{
var filter = CommitTimeRevFilter.Between(((GitRevisionId) from).Time.AddSeconds(1),
((GitRevisionId) to).Time.AddSeconds(-1));
revWalk.SetRevFilter(ApplyNoMergesFilter(filter));
var commits =
(from revision in revWalk orderby revision.GetCommitTime() ascending select revision).ToArray().Split(pageSize);
var fromTillHead =
commits.Select(x => new RevisionRange(x.First().ConvertToRevisionId(), x.Last().ConvertToRevisionId())).ToArray();
return fromTillHead;
}
finally
{
revWalk.Dispose();
}
}