diff options
| author | 2026-04-02 06:23:30 +0000 | |
|---|---|---|
| committer | 2026-04-02 06:28:39 +0000 | |
| commit | a041d523de389b65b98a5373a8034041db2a8d83 (patch) | |
| tree | 7b423dc735f463be616045f2c3c2095a7737aca7 /commitquery/query_merge_bases.go | |
| parent | research: Add dynamic pack resources (diff) | |
| signature | No signature | |
*: Remove
Diffstat (limited to 'commitquery/query_merge_bases.go')
| -rw-r--r-- | commitquery/query_merge_bases.go | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/commitquery/query_merge_bases.go b/commitquery/query_merge_bases.go deleted file mode 100644 index 384ee019..00000000 --- a/commitquery/query_merge_bases.go +++ /dev/null @@ -1,45 +0,0 @@ -package commitquery - -import ( - "slices" - - objectid "codeberg.org/lindenii/furgit/object/id" -) - -// MergeBases reports all merge bases in Git's merge-base --all order. -// -// Both inputs are peeled through annotated tags before commit traversal. -func (query *query) MergeBases(left, right objectid.ObjectID) ([]objectid.ObjectID, error) { - leftIdx, err := query.resolveCommitish(left) - if err != nil { - return nil, err - } - - rightIdx, err := query.resolveCommitish(right) - if err != nil { - return nil, err - } - - candidates, err := query.mergeBases(leftIdx, rightIdx) - if err != nil { - return nil, err - } - - slices.SortFunc(candidates, func(left, right nodeIndex) int { - switch { - case query.commitTime(left) > query.commitTime(right): - return -1 - case query.commitTime(left) < query.commitTime(right): - return 1 - default: - return objectid.Compare(query.id(left), query.id(right)) - } - }) - - out := make([]objectid.ObjectID, 0, len(candidates)) - for _, idx := range candidates { - out = append(out, query.id(idx)) - } - - return out, nil -} |
