Thread (1 message) 1 message, 1 author, 2024-07-22

Re: [feature request] Is it possible to have git tag can be sorted and filtered by semver?

From: Junio C Hamano <hidden>
Date: 2024-07-22 23:40:39

[off-list ref] writes:
Currently, tags would be sorted as follows (simple example):
1.10.0
1.2.0
1.9.1

With semver, the tags would be:
1.2.0
1.9.1
1.10.0

My take is that this, if implemented, would need to be more general, and include prefix and suffix handling, so:
v1.2.0
v1.9.0
v1.10.0
Without implemeting anything, wouldn't "--sort=version:refname"
suggested by Brian work just fine?

In the git repository:

    $ git tag --sort=version:refname | grep -e 'v2\.[0-9][0-9]*\.[0-9][0-9]*$'
    v2.0.0
    ...
    v2.0.5
    v2.1.0
    v2.1.1
    v2.1.2
    v2.1.3
    v2.1.4
    v2.2.0
    ...
    v2.9.0
    ...
    v2.9.5
    v2.10.0
    v2.10.1
    v2.10.2
    v2.10.3
    v2.10.4
    v2.10.5
    v2.11.0
    ...
    v2.45.1
    v2.45.2

sorting 2.1.x series a lot earlier than 2.10.x series that is sorted
after 2.9.x series.

Isn't it exactly what the original requester wants to see?

One mechanism I find it lacking is a mechanism to tell the tool that
-preW in X.Y.Z-preW is a suffix that signals that X.Y.Z-preW comes
before X.Y.Z, while -postW in X.Y.Z-postW is a suffix that signals
that X.Y.Z-postW comes after X.Y.Z.  Using such a mechanism, we
could say v2.1.0-rc0 comes before v2.1.0-rc1, which in turn comes
before v2.1.0-rc2, which in turn comes before v2.1.0 proper.

But other than the ordering of the final release and -rcX, I think
"--sort=version:refname" does the right thing already.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help