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);
        }