Skip to content

Commit 836d9f3

Browse files
authored
Merge pull request #1509 from thunder-coding/dpkg-compliant-version-compare
make version comparision more similar to that of dpkg
2 parents 4e457aa + 61650e5 commit 836d9f3

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,6 @@ List of contributors, in chronological order:
7474
* JupiterRider (https://github.com/JupiterRider)
7575
* Agustin Henze (https://github.com/agustinhenze)
7676
* Tobias Assarsson (https://github.com/daedaluz)
77+
* Yaksh Bariya (https://github.com/thunder-coding)
7778
* Juan Calderon-Perez (https://github.com/gaby)
7879
* Ato Araki (https://github.com/atotto)

deb/version.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ func CompareVersions(ver1, ver2 string) int {
3030

3131
// parseVersions breaks down full version to components (possibly empty)
3232
func parseVersion(ver string) (epoch, upstream, debian string) {
33-
i := strings.LastIndex(ver, "-")
33+
i := strings.Index(ver, ":")
3434
if i != -1 {
35-
debian, ver = ver[i+1:], ver[:i]
35+
epoch, ver = ver[:i], ver[i+1:]
3636
}
3737

38-
i = strings.Index(ver, ":")
38+
i = strings.Index(ver, "-")
3939
if i != -1 {
40-
epoch, ver = ver[:i], ver[i+1:]
40+
debian, ver = ver[i+1:], ver[:i]
4141
}
4242

4343
upstream = ver

deb/version_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ func (s *VersionSuite) TestParseVersion(c *C) {
2020
c.Check([]string{e, u, d}, DeepEquals, []string{"", "1.3.4", "1"})
2121

2222
e, u, d = parseVersion("1.3-pre4-1")
23-
c.Check([]string{e, u, d}, DeepEquals, []string{"", "1.3-pre4", "1"})
23+
c.Check([]string{e, u, d}, DeepEquals, []string{"", "1.3", "pre4-1"})
2424

2525
e, u, d = parseVersion("4:1.3-pre4-1")
26-
c.Check([]string{e, u, d}, DeepEquals, []string{"4", "1.3-pre4", "1"})
26+
c.Check([]string{e, u, d}, DeepEquals, []string{"4", "1.3", "pre4-1"})
2727
}
2828

2929
func (s *VersionSuite) TestCompareLexicographic(c *C) {
@@ -100,6 +100,7 @@ func (s *VersionSuite) TestCompareVersions(c *C) {
100100
c.Check(CompareVersions("1.0-133-avc", "1.0"), Equals, 1)
101101

102102
c.Check(CompareVersions("5.2.0.3", "5.2.0.283"), Equals, -1)
103+
c.Check(CompareVersions("4.3.5a", "4.3.5-rc3-1"), Equals, 1)
103104
}
104105

105106
func (s *VersionSuite) TestParseDependency(c *C) {

0 commit comments

Comments
 (0)