Hmm …
Hmm …
Posted Nov 1, 2018 9:47 UTC (Thu) by tzafrir (subscriber, #11501)In reply to: Hmm … by smurf
Parent article: Apache Subversion 1.11.0 released
Posted Nov 1, 2018 11:49 UTC (Thu)
by ballombe (subscriber, #9523)
[Link] (7 responses)
Posted Nov 1, 2018 14:58 UTC (Thu)
by tzafrir (subscriber, #11501)
[Link] (5 responses)
And no. I don't miss Subversion.
Posted Nov 1, 2018 18:53 UTC (Thu)
by nybble41 (subscriber, #55106)
[Link]
Really? I mean, anything can be encoded into an integer, technically—Git commit IDs are just integers after all even if they are represented as hex strings—but I wouldn't say the base version of an arbitrary Subversion repository "fits nicely inside an integer" given its support for mixed-revision working copies and independently-versioned external references:
> $ svnversion
That doesn't even tell you *which* parts of the working copy are from each revision, just the lowest and highest revision IDs.
Even without mixed revisions, externals, or local modifications, a single revision ID is not enough to recreate the state of the working copy: you also need to identify the repository URL and the path of the branch. Contrast that with a Git commit ID, which uniquely identifies both the content of the checkout and its history.
> It probably is used, but I don't recall it being used in snapshot release names.
I have at least 45 packages installed on my Debian system right now which use the Git commit ID as part of the package version. IIRC if you build a kernel from the Debian source package it uses the Git commit ID by default as part of the kernel version.
Posted Nov 1, 2018 21:03 UTC (Thu)
by smurf (subscriber, #17840)
[Link] (3 responses)
The question is, why would you want that. Unique version idenifiers do not need to be monotonic, and in most (of not all) projects not every commit needs a monotonically-increasing version number – just those you're releasing.
Posted Nov 2, 2018 13:56 UTC (Fri)
by k8to (guest, #15413)
[Link] (1 responses)
It's really useful for users, it's really useful for troubleshooting by providers, etc. Not everyone needs this property, and there are other ways to be able to deal with unsortable version numbers that are more annoying.
It's weird how many people seem to be willing to deny this utility. It's not an overwhelming concern, but it is quite useful.
Posted Nov 3, 2018 14:36 UTC (Sat)
by mgedmin (subscriber, #34497)
[Link]
<last-version-tag-on-this-branch>-<number-of-commits-since-that-tag>-g<sha1-of-the-last-commit>
The first parts ensure that version numbers produced by `git describe` are monotonically increasing (assuming you tag your versions in a sensible way), and the last part ensures anyone can quickly locate the right commit if they want to.
Posted Nov 2, 2018 15:27 UTC (Fri)
by tzafrir (subscriber, #11501)
[Link]
Posted Nov 4, 2018 9:32 UTC (Sun)
by tialaramex (subscriber, #21167)
[Link]
Now, fortunately (?) for them Haiku is developed rather slowly, after 17 years they have only just over 50 000 of these revisions, the number would be pretty out of control for a project like Linux - but this approach is definitely viable for your own small projects where revisions above 1000 aren't likely.
But one other notable thing about Haiku is that development has proceeded in a largely linear fashion for those 17 years. Git makes branching easy, but Haiku's politics make it hard; there is a clear mandate for the project's original concept (reproduce the 1990s BeOS R5) but beyond or outside of that things quickly get sketchy. So there's an uneasy process whereby other changes, orthogonal to that concept, either get accepted into their mainline warts and all very early, or are abandoned and decay quietly.
Haiku branched for Haiku R1 Beta 1 back in September, but there are no monotonically increasing revision numbers on that branch, it's just all labelled "Haiku R1 Beta 1" without distinguishing.
Hmm …
Hmm …
Hmm …
> 3500:4122M
Hmm …
Hmm …
Hmm …
Hmm …
Version numbers