mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-11-13 14:37:18 +00:00
fix merge conflicts
This commit is contained in:
1 parent
300837fe06
commit
151f67a294
2 files changed
+30
-7
No files matched your search
+28
-5
@@ -199,15 +199,38 @@ func (l *PackageList) FilterLatest(count int) (*PackageList, error) {
|
||||
|
||||
for _, pkgs := range groups {
|
||||
// sort from latest to oldest
|
||||
sort.Slice(pkgs, func(i, j int) bool {
|
||||
return CompareVersions(pkgs[i].Version, pkgs[j].Version) > 0
|
||||
sort.SliceStable(pkgs, func(i, j int) bool {
|
||||
cmp, cmpErr := CompareVersions(pkgs[i].Version, pkgs[j].Version)
|
||||
switch cmpErr {
|
||||
case LeftInvalid, BothInvalid:
|
||||
return false
|
||||
case RightInvalid:
|
||||
return true
|
||||
}
|
||||
return cmp > 0
|
||||
})
|
||||
|
||||
versions := 0
|
||||
for i, p := range pkgs {
|
||||
if i == 0 || CompareVersions(p.Version, pkgs[i-1].Version) != 0 {
|
||||
versions++
|
||||
if versions > count {
|
||||
if i == 0 {
|
||||
// first element always included
|
||||
} else {
|
||||
cmp, cmpErr := CompareVersions(p.Version, pkgs[i-1].Version)
|
||||
switch cmpErr {
|
||||
case LeftInvalid, BothInvalid:
|
||||
// invalid version is different from previous
|
||||
versions++
|
||||
case RightInvalid:
|
||||
// previous was invalid, current is valid — different
|
||||
versions++
|
||||
default:
|
||||
if cmp == 0 {
|
||||
// same version, skip
|
||||
} else {
|
||||
versions++
|
||||
}
|
||||
}
|
||||
if versions >= count {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -580,7 +580,7 @@ func (s *PackageListSuite) TestFilterLatestInvalidVersions(c *C) {
|
||||
_ = list.Add(valid)
|
||||
_ = list.Add(invalid)
|
||||
|
||||
filtered, err := list.FilterLatest()
|
||||
filtered, err := list.FilterLatest(1)
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(filtered.Len(), Equals, 1)
|
||||
c.Check(filtered.Has(valid), Equals, true)
|
||||
@@ -588,7 +588,7 @@ func (s *PackageListSuite) TestFilterLatestInvalidVersions(c *C) {
|
||||
invalidOnly := NewPackageList()
|
||||
_ = invalidOnly.Add(&Package{Name: "pkg", Version: "1.0-", Architecture: "amd64"})
|
||||
_ = invalidOnly.Add(&Package{Name: "pkg", Version: "2.0-", Architecture: "amd64"})
|
||||
filtered, err = invalidOnly.FilterLatest()
|
||||
filtered, err = invalidOnly.FilterLatest(1)
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(filtered.Len(), Equals, 1)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user