feat(merge): Export Merge3WayWithTTL for configurable tombstone TTL (bd-6rl)

This commit is contained in:
Steve Yegge
2025-12-25 22:45:32 -08:00
parent 19a182a26a
commit f6c739f75e
2 changed files with 7 additions and 5 deletions

View File

@@ -292,12 +292,14 @@ func IsExpiredTombstone(issue Issue, ttl time.Duration) bool {
}
func merge3Way(base, left, right []Issue) ([]Issue, []string) {
return merge3WayWithTTL(base, left, right, DefaultTombstoneTTL)
return Merge3WayWithTTL(base, left, right, DefaultTombstoneTTL)
}
// merge3WayWithTTL performs a 3-way merge with configurable tombstone TTL.
// Merge3WayWithTTL performs a 3-way merge with configurable tombstone TTL.
// This is the core merge function that handles tombstone semantics.
func merge3WayWithTTL(base, left, right []Issue, ttl time.Duration) ([]Issue, []string) {
// Use this when you need to configure TTL for testing, debugging, or
// per-repository configuration. For default TTL behavior, use merge3Way.
func Merge3WayWithTTL(base, left, right []Issue, ttl time.Duration) ([]Issue, []string) {
// Build maps for quick lookup by IssueKey
baseMap := make(map[IssueKey]Issue)
for _, issue := range base {