git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Teach git-describe --long to output always the long format

From
SBSanti Béjar <sbejar@gmail.com>
Date
Feb 25, 2008, 20:51 UTC
Message-ID
<8aa486160802251251u74a19b93l77ca3930d2387cb8@mail.gmail.com>
In-Reply-To
<7vwsoshk3s.fsf@gitster.siamese.dyndns.org>
On Mon, Feb 25, 2008 at 9:11 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 18 quoted lines
> "Santi Béjar" <sbejar@gmail.com> writes:
>
>
> >>  That's backwards.  If you want reliable unique identifier, you
>  >>  would use 40-hexdigit.  If you want human readable, you would
>  >>  use tags, and if you allow different people to distribute tags
>  >>  with the same name that point at different things, _you_ have a
>  >>  problem at higher level.
>  >
>  > Yes, I have a "problem" at a higher level, but I cannot "solve" it.
>  > This patch "workaround" this "problem", we want all to be able to tag
>  > and have descriptive and uniqe names. I think git should allows us to
>  > work this way.
>
>  Why can't you solve it?  Your example of two people giving the
>  same name to different things shows a lack of communication
>  between developers, and as long as you and the other guy are
>  talking with each other the problem can be solved, can't it?

But there are times when you can't/don't want to communicate (private/testing/forks, whatever).

Anyway, even if this problem is solved I feel more confortable with a version in my binary (and output) with a descriptive name and a revision id.

>  SCM or any other tools may facilitate developer communication,
>  but it is not a replacement for communication.
I know, but my problem is not lack of communication.
Show 6 quoted lines
>
>  "git describe" output can be unique only within a local
>  repository, as it cannot read your mind and inspect random
>  repositories other people own.  In one repository, abbreviating
>  an object name to 4 hexdigits may be enough to make it unique,
>  but in another it may need 6 hexdigits.

If you always use "git describe --long" it is globally unique, as long as sha1 is globally unique (at least unique enough).

Show 8 quoted lines
>  If you are trying to guarantee uniqueness of something that
>  lives for a long time (e.g. release version number that is
>  embedded inside binaries, which is what you use "git describe"
>  to generate), _and_ if you worry about two people in different
>  repositories giving the same name to different things which
>  would introduce a bogosity to that long-lived name, you would
>  need a way that is external to the uniqueness guarantee "git
>  describe" can give.
See above.
Show 5 quoted lines
>  I do not mind low-impact new options and new features like this.
>  Everybody loves bells and whistles.  But I do want valid use
>  cases attached to them so that (1) we can justify their
>  existence; and (2) we can document them to explain what purpose
>  they serve, to help people to decide when to use them.
OK.
Show 8 quoted lines
>  I even suspect that the --long flag might be useful in some
>  situation, but I do not think "a tag with the same name" is one
>  of the problems this patch lets you solve or work around.
>
>  Jakub's "it looks more uniform and does not treat a tagged
>  version any specially" may probably be a better argument for
>  this new feature.  I dunno.
>
Maybe.
Santi
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 12 in “Teach git-describe --long to output always the long format”
  1. Teach git-describe --long to output always the long formatSanti Béjar, Feb 24, 2008
  2. Shawn O. PearceFeb 25, 2008
  3. Junio C HamanoFeb 25, 2008
  4. Santi BéjarFeb 25, 2008
  5. Junio C HamanoFeb 25, 2008
  6. Santi BéjarFeb 25, 2008
  7. Junio C HamanoFeb 25, 2008
  8. Santi BéjarFeb 25, 2008
  9. Junio C HamanoFeb 26, 2008
  10. Santi BéjarFeb 26, 2008
  11. Jakub NarebskiFeb 25, 2008
  12. Teach git-describe --long to output always the long formatSanti Béjar, Feb 25, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.