From: Uwe Zeisberger Date: Thu, 26 Jan 2006 07:44:21 GMT Subject: Re: git describe fails without tags Message-ID: <20060126074421.GA2941@informatik.uni-freiburg.de> In-Reply-To: <7vek2wws61.fsf@assigned-by-dhcp.cox.net> Hello Junio, Junio C Hamano wrote: > Uwe Zeisberger writes: > > > I wonder if it would be sane to assume an implicit tag for the empty > > repository, s.t. git describe results in > > > > -62ac6c16 > > > > (whatever name is choosen for ). > > > > Any opinions? > > [...] If the reason you are doing "describe" is to find out an usable > abbreviated name, you could feed the first few hexdigits to "git > rev-parse --verify", lengthening the prefix longer by one until it > says you have a unique prefix [*1*]. Yes, I wrote a script that automatically build git and install it to ${HOME}/usr/stow/git-`git describe HEAD` and then stow(8)s it. Writing a similar script for sparse cannot use git describe because there are no tags ... > In other words, not particularly interested, although it is > trivial to implement, like this: > > diff --git a/describe.c b/describe.c > index 4866510..aeaf0fb 100644 > --- a/describe.c > +++ b/describe.c > @@ -137,7 +137,7 @@ static void describe(char *arg, int last > return; > } > } > - die("cannot describe '%s'", sha1_to_hex(cmit->object.sha1)); > + printf("%s\n", find_unique_abbrev(cmit->object.sha1, abbrev)); > } > > int main(int argc, char **argv) It's a pity your not particularly interested, I like that patch's idea. git describe dies with an error here in a situation where there is the possibility to do something sensible. BTW, for the sake of consistency, I'd suggest - die("cannot describe '%s'", sha1_to_hex(cmit->object.sha1)); + printf("g%s\n", find_unique_abbrev(cmit->object.sha1, abbrev)); Best regards Uwe -- Uwe Zeisberger http://www.google.com/search?q=1+year+divided+by+3+in+seconds