# HG changeset patch # User Chris Cannam # Date 1289428078 0 # Node ID f9b53c10a3f6a698437c55a23daa8393bd415145 # Parent 996b3c4037ef174096734e69f795b02e189a2b1c * A fix that will only work when we sort changesets by date (test with classical-rdf) diff -r 996b3c4037ef -r f9b53c10a3f6 grapher.cpp --- a/grapher.cpp Wed Nov 10 22:07:03 2010 +0000 +++ b/grapher.cpp Wed Nov 10 22:27:58 2010 +0000 @@ -165,6 +165,22 @@ m_handled.insert(id); int nchildren = cs->children().size(); + + // look for merging children and make sure nobody + // is going to overwrite their "merge lines" + foreach (QString childId, cs->children()) { + if (!m_changesets.contains(childId)) continue; + Changeset *child = m_changesets[childId]; + if (child->parents().size() > 1) { + int childRow = m_items[childId]->row(); + std::cerr << "I'm at " << row << ", child with >1 parents is at " << childRow << std::endl; + for (int r = row; r >= childRow; --r) { + std::cerr << "setting row " << r << ", col " << col << std::endl; + m_alloc[r].insert(col); + } + } + } + if (nchildren > 1) { // Normally the children will lay out themselves. We just // want to handle the case where exactly two children have the