[PATCH 1/2] Add [-s|--hash] option to Linus' show-ref.

Subsystems: the rest

DORMANTno replies

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

[PATCH 1/2] Add [-s|--hash] option to Linus' show-ref.

From: Christian Couder <hidden>
Date: 2016-06-15 22:42:40

With this option only the sha1 hash of the ref should
be printed.

Signed-off-by: Christian Couder <redacted>
---
 builtin-show-ref.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/builtin-show-ref.c b/builtin-show-ref.c
index 161b236..577d934 100644
--- a/builtin-show-ref.c
+++ b/builtin-show-ref.c
@@ -3,9 +3,10 @@ #include "refs.h"
 #include "object.h"
 #include "tag.h"
 
-static const char show_ref_usage[] = "git show-ref [-q|--quiet] [--verify] [-h|--head] [-d|--deref] [--tags] [--heads] [--] [pattern*]";
+static const char show_ref_usage[] = "git show-ref [-q|--quiet] [--verify] [-h|--head] [-d|--deref] [-s|--hash] [--tags] [--heads] [--] [pattern*]";
 
-static int deref_tags = 0, show_head = 0, tags_only = 0, heads_only = 0, found_match = 0, verify = 0, quiet = 0;
+static int deref_tags = 0, show_head = 0, tags_only = 0, heads_only = 0,
+	found_match = 0, verify = 0, quiet = 0, hash_only = 0;
 static const char **pattern;
 
 static int show_ref(const char *refname, const unsigned char *sha1)
@@ -50,7 +51,10 @@ match:
 	}
 	if (quiet)
 		return 0;
-	printf("%s %s\n", sha1_to_hex(sha1), refname);
+	if (hash_only)
+		printf("%s\n", sha1_to_hex(sha1));
+	else
+		printf("%s %s\n", sha1_to_hex(sha1), refname);
 	if (deref_tags && obj->type == OBJ_TAG) {
 		obj = deref_tag(obj, refname, 0);
 		printf("%s %s^{}\n", sha1_to_hex(obj->sha1), refname);
@@ -86,6 +90,10 @@ int cmd_show_ref(int argc, const char **
 			deref_tags = 1;
 			continue;
 		}
+		if (!strcmp(arg, "-s") || !strcmp(arg, "--hash")) {
+			hash_only = 1;
+			continue;
+		}
 		if (!strcmp(arg, "--verify")) {
 			verify = 1;
 			continue;
-- 
1.4.2.1.gea00f-dirty

[PATCH 2/2] Use Linus' show ref in "git-branch.sh".

From: Christian Couder <hidden>
Date: 2016-06-15 22:42:40

Signed-off-by: Christian Couder <redacted>
---
 git-branch.sh |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/git-branch.sh b/git-branch.sh
index e0501ec..2600e9c 100755
--- a/git-branch.sh
+++ b/git-branch.sh
@@ -21,7 +21,7 @@ delete_branch () {
 	,,)
 	    die "What branch are you on anyway?" ;;
 	esac
-	branch=$(cat "$GIT_DIR/refs/heads/$branch_name") &&
+	branch=$(git-show-ref --verify --hash -- "refs/heads/$branch_name") &&
 	    branch=$(git-rev-parse --verify "$branch^0") ||
 		die "Seriously, what branch are you talking about?"
 	case "$option" in
@@ -112,7 +112,7 @@ rev=$(git-rev-parse --verify "$head") ||
 git-check-ref-format "heads/$branchname" ||
 	die "we do not like '$branchname' as a branch name."
 
-if [ -e "$GIT_DIR/refs/heads/$branchname" ]
+if git-show-ref --verify --quiet -- "refs/heads/$branchname"
 then
 	if test '' = "$force"
 	then
-- 
1.4.2.1.gea00f-dirty

Re: [PATCH 1/2] Add [-s|--hash] option to Linus' show-ref.

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:42:40

Christian Couder wrote:
With this option only the sha1 hash of the ref should
be printed.
Could you please update manpage as well?

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

Re: [PATCH 1/2] Add [-s|--hash] option to Linus' show-ref.

From: Christian Couder <hidden>
Date: 2016-06-15 22:42:40

Jakub Narebski wrote:
Christian Couder wrote:
quoted
With this option only the sha1 hash of the ref should
be printed.
Could you please update manpage as well?
It seems to me that there is no man page for git-show-ref in next right now.

I could add one but I may not describe some part of it correctly.

Christian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help