Re: git-rev-parse --symbolic-abbrev-name
- From
Arnaud Lacombe <lacombar@gmail.com>
- Date
- Jan 7, 2009, 04:58 UTC
- Message-ID
- <1a69a9d80901062058n2e6c51b9vfb2332c79463de37@mail.gmail.com>
- In-Reply-To
- <7vocykkftg.fsf@gitster.siamese.dyndns.org>
On Tue, Jan 6, 2009 at 3:18 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 15 quoted lines
>> diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c >> index 81d5a6f..70f4a33 100644 >> --- a/builtin-rev-parse.c >> +++ b/builtin-rev-parse.c >> @@ -24,6 +24,7 @@ static int show_type = NORMAL; >> >> #define SHOW_SYMBOLIC_ASIS 1 >> #define SHOW_SYMBOLIC_FULL 2 >> +#define SHOW_SYMBOLIC_SHORT 3 >> static int symbolic; >> static int abbrev; >> static int output_sq; > > I think --symbolic-short makes the most sense. >
ok, thanks.
Show 19 quoted lines
>> @@ -125,13 +129,20 @@ static void show_rev(int type, const unsigned char *sha1, const char *name)
>> */
>> break;
>> case 1: /* happy */
>> + if (symbolic == SHOW_SYMBOLIC_SHORT) {
>> + char *p;
>> + p = strrchr(full, (int)'/');
>> + if (p != NULL)
>> + full = p + 1;
>> + }
>
> However, this is not a good way to do it, I suspect. This patch most
> likely will be queued to the al/symbolic-short topic branch, but you are
> losing information here. You'd probably want to try substings from the
> tail of the full name (e.g. symbolic-short, al/symbolic-short,
> heads/al/symbolic-short, and finally refs/heads/al/symbolic-short) and
> feed them to dwim_ref() and pick the shortest one that yields the same ref
> unambiguously, or something like that.
>ok, I see what you mean, I'll rework the patch to fix this. I was about to do a proper patch submission when I saw you reply, so it will be for next time!
> By the way, I do not see why you need to cast '/'. >
overzealous type casting due to lack of cafeine in blood :-)
regards,
- Arnaud