public List <GraphEntry> GetLogEntries(string path, int count) { var nodeColors = new Dictionary <string, int>(); var colorNumber = 0; var entries = GitUtilities.GetLogEntries(path, count + 1000, allRefs: true); var refs = GitUtilities.GetAllRefs(path); var results = new List <GraphEntry>(); var incoming = new List <string>(); foreach (var entry in entries.Take(count)) { var color = ColorNode(entry, nodeColors, ref colorNumber); results.Add(new GraphEntry { LogEntry = entry, Refs = refs.Where(r => r.ShaId == entry.CommitHash).ToList(), Node = new NodeInfo { Hash = entry.CommitHash, Color = color }, IncomingNodes = incoming.Select(i => new NodeInfo { Hash = i, Color = nodeColors[i] }).ToList(), ParentNodes = entry.Parents.Select(i => new NodeInfo { Hash = i, Color = nodeColors[i] }).ToList(), }); incoming = BuildOutgoing(incoming, entry); } return(results); }