Re: [PATCH] versionsort: support reorder prerelease suffixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nguyễn Thái Ngọc Duy  <pclouds@xxxxxxxxx> writes:

> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx>
> ---
>  Second round. Looking better. We can do
>  "1.0-pre12 < 1.0-rc0 < 1.0 < 1.0-post1" too but it relies on
>  config key's loading order, a bit iffy.
>
>  Documentation/config.txt |  7 +++++++
>  t/t7004-tag.sh           | 28 +++++++++++++++++++++++++++
>  versioncmp.c             | 50 ++++++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 85 insertions(+)
>
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 04e2a71..8e078df 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -2539,6 +2539,13 @@ user.signingkey::
>  	This option is passed unchanged to gpg's --local-user parameter,
>  	so you may specify a key using any method that gpg supports.
>  
> +versionsort.prereleaseSuffix::
> +	When version sort is used in linkgit:git-tag[1], prerelease
> +	tags (e.g. "1.0-rc1") may appear after the main release
> +	"1.0". By specifying the suffix "-rc" in this variable,
> +	"1.0-rc1" will appear before "1.0". One variable assignment
> +	per suffix.

I think the last half-sentence want to mean that

	[versionsort]
                prereleaseSuffix = -pre
        	prereleaseSuffix = -rc

is the supported way to write, and not

	[versionsort]
        	prereleaseSuffix = -pre -rc

but it probably is unclear unless the reader already knows what it
is trying to say.  The reader also needs to learn somewhere how the
order of the entries affects the result.

> +	if (i1 == -1 && i2 == -1)
> +		return 0;
> +	if (i1 >= 0 && i2 >= 0)
> +		*diff = i1 - i2;
> +	else if (i1 >= 0)
> +		*diff = -1;

p1 is a prerelease and p2 is not, so p1 comes before p2.

> +	else /* if (i2 >= 0) */
> +		*diff = 1;

and the other way around.

The math makes sense, I think.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]