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.