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

Re: limits for package name and version (MBF alert: ... .deb filenames)



On Mon, 2011-04-25 at 22:25 +0200, Adam Borowski wrote:
> On Sun, Apr 24, 2011 at 04:54:46AM +0100, Ben Hutchings wrote:
> > On Sun, 2011-04-24 at 02:31 +0200, Adam Borowski wrote:
> > > On Sat, Apr 23, 2011 at 03:06:39PM +0100, Ben Hutchings wrote:
> > > > I would like to see policy forbid the use of commit hashes in versions.
> > > > They aren't ordered, and the information about exactly which commit the
> > > > snapshot was can be included in the changelog.
> > > 
> > > If you use "git describe", removing hashes is a bad idea.
> > > 
> > > They are needed to identify the version.  Version numbers that are not
> > > unique are worthless.
> > 
> > If versions are not ordered without the inclusion of a commit hash, they
> > are not ordered *with* it (except by chance).
> 
> Remember that version numbers have two purposes:
> 1. ordering
> 2. uniquely referencing a snapshot of source (blessed as a release or not)
> 
> I'd call 2. more important than 1.

It's not very important in the Debian archive.

> > > A small portion of the hash is there only to disambiguate potential
> > > branches, ordering is provided by the number of commits:
> > > 0.9.0-a0-283-g1143071 means: tag "0.9.0-a0", with 283 revisions after it,
> > > from a branch whose head's hash starts with 1143071.
> > > 
> > > If I take revision 282 and apply patch X, while you take the same revision
> > > but apply patch Y instead, we both would have the same version number if
> > > hash is not included.
> > 
> > But it is not possible for a branch head to be in two different
> > positions at different times which 'git describe' will distinguish only
> > by the hash, unless it is rebased.
> 
> * git commit --amend
> * any edit to an earlier commit
> * reparenting, etc

Isn't that what I just said?

> * resetting to another version of the branch that has the same commit count
> * two developers or one developer with two machines or directories
> * many, many other ways
>
> Mere count of commits is pretty worthless in a distributed system.

If your upstream is pulling such tricks then you cannot use this type of
version *with or without* the hash, because it will not be ordered
properly.  You would have to use a date/timestamp.

Ben.

-- 
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: