Re: git-rev-parse --symbolic-abbrev-name

7 messages, 3 authors, 2016-06-15 · open the first message on its own page

Re: git-rev-parse --symbolic-abbrev-name

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:45:52

Karl Chen [off-list ref] writes:
... you really think "branchfoo" instead of
"refs/heads/branchfoo" is a narrow special case?
Of course it is narrower.  There are namespaces other than "heads" under
refs, and not everybody is interested in branches.
obviously all those people posting on blogs don't know about it :)
Yes, and that won't be helped by any new option to the plumbing.

The above two does not necessarily mean that it is useless to add a new
option to help a narrow special case that is common, though.

Re: git-rev-parse --symbolic-abbrev-name

From: Arnaud Lacombe <hidden>
Date: 2016-06-15 22:45:52

Hi,

On Sun, Jan 4, 2009 at 2:36 PM, Junio C Hamano [off-list ref] wrote:
Karl Chen [off-list ref] writes:
quoted
... you really think "branchfoo" instead of
"refs/heads/branchfoo" is a narrow special case?
Of course it is narrower.  There are namespaces other than "heads" under
refs, and not everybody is interested in branches.
quoted
obviously all those people posting on blogs don't know about it :)
Yes, and that won't be helped by any new option to the plumbing.

The above two does not necessarily mean that it is useless to add a new
option to help a narrow special case that is common, though.
You'll find hereafter two patches which implements this in
git-symbolic-ref and git-rev-parse. Feel free to choose the one you
find the best. If you choose to integrate one of these, tells me and
I'll do a proper documentation bits and patch submission.

Sample output:

~/git/% ./git-rev-parse --symbolic-short-name HEAD
master
~/git/% ./git-symbolic-ref -a HEAD
master
~/git/% git checkout v1.6.1
~/git/% ./git-rev-parse --symbolic-short-name HEAD
HEAD
~/git/% ./git-symbolic-ref -a HEAD
fatal: ref HEAD is not a symbolic ref
~/git/% ./git-symbolic-ref -qa HEAD
~/git/%

Thanks in advance,

 - Arnaud

ps: I choose --symbolic-short-name as the opposite of
--symbolic-full-name for consistency.
ps2: sorry for the bogus mime-type

Re: git-rev-parse --symbolic-abbrev-name

From: Miklos Vajna <hidden>
Date: 2016-06-15 22:45:52

On Sun, Jan 04, 2009 at 03:23:03PM -0500, Arnaud Lacombe [off-list ref] wrote:
ps: I choose --symbolic-short-name as the opposite of
--symbolic-full-name for consistency.
ps2: sorry for the bogus mime-type
That's not a problem, just don't attach your patch. Please read
Documentation/SubmittingPatches.

Thanks.

Re: git-rev-parse --symbolic-abbrev-name

From: Arnaud Lacombe <hidden>
Date: 2016-06-15 22:45:52

Hi,

On Sun, Jan 4, 2009 at 5:38 PM, Miklos Vajna [off-list ref] wrote:
On Sun, Jan 04, 2009 at 03:23:03PM -0500, Arnaud Lacombe [off-list ref] wrote:
quoted
ps: I choose --symbolic-short-name as the opposite of
--symbolic-full-name for consistency.
ps2: sorry for the bogus mime-type
That's not a problem, just don't attach your patch. Please read
Documentation/SubmittingPatches.
ok, looks, I did these patch this morning quickly, didn't commit
anything or so. If there worth anything, then I'll spent time
commiting, doing nice integration, documentation, whatsoever ... Just
need a quick yes or no, these as patch are really trivial.

 - Arnaud

ps: btw, Documentation/git-format-patch.txt does not describe the -M
flag, not does it describe the -B flag

Re: git-rev-parse --symbolic-abbrev-name

From: Miklos Vajna <hidden>
Date: 2016-06-15 22:45:52

On Mon, Jan 05, 2009 at 12:35:23AM -0500, Arnaud Lacombe [off-list ref] wrote:
ps: btw, Documentation/git-format-patch.txt does not describe the -M
flag, not does it describe the -B flag
But has a 'include::diff-options.txt[]', so the generated manpage does.
;-)

Re: git-rev-parse --symbolic-abbrev-name

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:45:52

"Arnaud Lacombe" [off-list ref] writes:
You'll find hereafter two patches which implements this in
git-symbolic-ref and git-rev-parse. Feel free to choose the one you
find the best. If you choose to integrate one of these, tells me and
I'll do a proper documentation bits and patch submission.
quoted hunk
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.
quoted hunk
@@ -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.

By the way, I do not see why you need to cast '/'.

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help