diff options
Diffstat (limited to 'commitquery/merge_bases.go')
| -rw-r--r-- | commitquery/merge_bases.go | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/commitquery/merge_bases.go b/commitquery/merge_bases.go index b7021814..0e410709 100644 --- a/commitquery/merge_bases.go +++ b/commitquery/merge_bases.go @@ -87,85 +87,3 @@ func (query *Query) mergeBases(left, right nodeIndex) ([]nodeIndex, error) { return reduced, nil } - -func (query *Query) paintDownToCommon(left nodeIndex, rights []nodeIndex, minGeneration uint64) error { - query.beginMarkPhase() - - query.setMarks(left, markLeft) - - if len(rights) == 0 { - query.setMarks(left, markResult) - - return nil - } - - queue := newPriorityQueue(query) - queue.PushNode(left) - - for _, right := range rights { - query.setMarks(right, markRight) - queue.PushNode(right) - } - - lastGeneration := generationInfinity - - for query.queueHasNonStale(queue) { - idx := queue.PopNode() - - generation := query.effectiveGeneration(idx) - if generation > lastGeneration { - return errBadGenerationOrder - } - - lastGeneration = generation - if generation < minGeneration { - break - } - - flags := query.marks(idx) & (markLeft | markRight | markStale) - if flags == (markLeft | markRight) { - query.setMarks(idx, markResult) - - flags |= markStale - } - - for _, parent := range query.parents(idx) { - if query.hasAllMarks(parent, flags) { - continue - } - - query.setMarks(parent, flags) - queue.PushNode(parent) - } - } - - return nil -} - -func (query *Query) queueHasNonStale(queue *priorityQueue) bool { - for _, idx := range queue.items { - if !query.hasAnyMarks(idx, markStale) { - return true - } - } - - return false -} - -func (query *Query) collectMarkedResults() []nodeIndex { - out := make([]nodeIndex, 0, 4) - - for _, idx := range query.touched { - if !query.hasAnyMarks(idx, markResult) { - continue - } - - if query.hasAnyMarks(idx, markStale) { - continue - } - - out = append(out, idx) - } - - return out -} |
