Re: git-rev-parse --symbolic-abbrev-name
From: Arnaud Lacombe <hidden>
Date: 2016-06-15 22:45:52
On Tue, Jan 6, 2009 at 3:18 AM, Junio C Hamano [off-list ref] wrote:
quoted
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.
quoted
@@ -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