public void Add(HgRevlogEntry revlogEntry) { var node = new HgRevlogGraphNode(revlogEntry.NodeID, revlogEntry.Revision); // // We only link back to Root when both parents are Null if(revlogEntry.FirstParentRevisionNodeID == HgNodeID.Null && revlogEntry.SecondParentRevisionNodeID == HgNodeID.Null) { node.FirstParent = Root; Root.Children.Add(node); } // if else { node.FirstParent = nodes[revlogEntry.FirstParentRevisionNodeID.Long]; // First parent is always there node.SecondParenet = revlogEntry.SecondParentRevisionNodeID == HgNodeID.Null ? null : nodes[revlogEntry.SecondParentRevisionNodeID.Long]; node.FirstParent.Children.Add(node); if(node.SecondParenet != null) node.SecondParenet.Children.Add(node); } // else nodes[node.NodeID.Long] = node; }
public HgRevlogGraph() { Root = new HgRevlogGraphNode(HgNodeID.Null, uint.MaxValue); }