On Tue, Sep 06, 2016 at 03:07:59AM +0200, SZEDER Gábor wrote: > > So that seems wrong. Even weirder, if I set _only_ "-beta", I get: > > > > $ git tag -l --sort=version:refname | grep -v ^2.6.0 > > 2.6.0-beta-2 > > 2.6.0-beta-3 > > 2.6.0-beta-4 > > 2.6.0 > > 2.6.0-RC1 > > 2.6.0-RC2 > > 2.6.0-beta-1 > > > > Umm...what? beta-1 is sorted away from its companions? That's weird. > > > > I wondered if the presence of "-" after the suffix ("beta-1" rather than > > "beta1") would matter. It looks like that shouldn't matter, though; it's > > purely doing a prefix match on "do these names differ at a prerelease > > suffix". > > > > But something certainly seems wrong. > > Some of the weirdness is caused by the '-' at the _beginning_ of the > suffixes, because versioncmp() gets confused by suffixes starting with > the same character(s). Oh, right, that makes sense. So it's effectively not finding _any_ suffix between X-RC1 and X-beta-1, because we only start looking after "X-", and none of them match. I am still confused why "2.6.0-beta-1" doesn't get sorted with its peers. I'd guess that the comparison function doesn't actually provide a strict ordering, so the results depend on the actual sort algorithm, and which pairs it ends up comparing. -Peff