Skip to content

Commit ce22b4b

Browse files
committed
WIP: fix PTL repo override behavior
1 parent ad54d3f commit ce22b4b

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

internal/config/merge.go

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -495,25 +495,23 @@ func mergePackageRepositories(defaultRepos, userRepos []PackageRepository) []Pac
495495
return userRepos
496496
}
497497

498-
// Start with a copy of default repos
499-
merged := make([]PackageRepository, len(defaultRepos))
500-
copy(merged, defaultRepos)
501-
502-
// For each user repo, override if codename matches a default, otherwise append
498+
// Remove all default repos whose codename is explicitly provided by user repos,
499+
// then append user repos as-is. This avoids partially overriding repeated
500+
// default entries for the same codename (e.g. split components).
501+
userCodenames := make(map[string]struct{}, len(userRepos))
503502
for _, userRepo := range userRepos {
504-
found := false
505-
for i, defRepo := range merged {
506-
if defRepo.Codename == userRepo.Codename {
507-
merged[i] = userRepo
508-
found = true
509-
break
510-
}
511-
}
512-
if !found {
513-
merged = append(merged, userRepo)
503+
userCodenames[userRepo.Codename] = struct{}{}
504+
}
505+
506+
merged := make([]PackageRepository, 0, len(defaultRepos)+len(userRepos))
507+
for _, defRepo := range defaultRepos {
508+
if _, ok := userCodenames[defRepo.Codename]; ok {
509+
continue
514510
}
511+
merged = append(merged, defRepo)
515512
}
516513

514+
merged = append(merged, userRepos...)
517515
return merged
518516
}
519517

0 commit comments

Comments
 (0)