threads / patch / 18219

patch, 2 partsUse a common function to get the pretty name of refs

Subject: [PATCH 1/2] Use a common function to get the pretty name of refs

## tl;dr

4 messages between Mar 9, 2009 and Mar 9, 2009. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Daniel Barkalow· Mar 9, 2009, 01:06 UTC · lore

The result should be consistent between fetch and push, so we ought to use the same code in both cases, even though it's short.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
---
 builtin-fetch.c     |    6 +-----
 builtin-send-pack.c |   10 ----------
 refs.c              |   10 ++++++++++
 refs.h              |    2 ++
 4 files changed, 13 insertions(+), 15 deletions(-)
Show changes to 4 files +13 −15

builtin-fetch.c, builtin-send-pack.c, refs.c, refs.h

diff --git a/builtin-fetch.c b/builtin-fetch.c
index 1e4a3d9..f3bdeda 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -197,11 +197,7 @@ static int update_local_ref(struct ref *ref,
 	struct commit *current = NULL, *updated;
 	enum object_type type;
 	struct branch *current_branch = branch_get(NULL);
-	const char *pretty_ref = ref->name + (
-		!prefixcmp(ref->name, "refs/heads/") ? 11 :
-		!prefixcmp(ref->name, "refs/tags/") ? 10 :
-		!prefixcmp(ref->name, "refs/remotes/") ? 13 :
-		0);
+	const char *pretty_ref = prettify_ref(ref);
 
 	*display = 0;
 	type = sha1_object_info(ref->new_sha1, NULL);
diff --git a/builtin-send-pack.c b/builtin-send-pack.c
index 9072905..43b89ec 100644
--- a/builtin-send-pack.c
+++ b/builtin-send-pack.c
@@ -172,16 +172,6 @@ static void update_tracking_ref(struct remote *remote, struct ref *ref)
 	}
 }
 
-static const char *prettify_ref(const struct ref *ref)
-{
-	const char *name = ref->name;
-	return name + (
-		!prefixcmp(name, "refs/heads/") ? 11 :
-		!prefixcmp(name, "refs/tags/") ? 10 :
-		!prefixcmp(name, "refs/remotes/") ? 13 :
-		0);
-}
-
 #define SUMMARY_WIDTH (2 * DEFAULT_ABBREV + 3)
 
 static void print_ref_status(char flag, const char *summary, struct ref *to, struct ref *from, const char *msg)
diff --git a/refs.c b/refs.c
index b2a37e1..8f968b5 100644
--- a/refs.c
+++ b/refs.c
@@ -736,6 +736,16 @@ int check_ref_format(const char *ref)
 	}
 }
 
+const char *prettify_ref(const struct ref *ref)
+{
+	const char *name = ref->name;
+	return name + (
+		!prefixcmp(name, "refs/heads/") ? 11 :
+		!prefixcmp(name, "refs/tags/") ? 10 :
+		!prefixcmp(name, "refs/remotes/") ? 13 :
+		0);
+}
+
 const char *ref_rev_parse_rules[] = {
 	"%.*s",
 	"refs/%.*s",
diff --git a/refs.h b/refs.h
index 29bdcec..68c2d16 100644
--- a/refs.h
+++ b/refs.h
@@ -79,6 +79,8 @@ extern int for_each_reflog(each_ref_fn, void *);
 #define CHECK_REF_FORMAT_WILDCARD (-3)
 extern int check_ref_format(const char *target);
 
+extern const char *prettify_ref(const struct ref *ref);
+
 /** rename ref, return 0 on success **/
 extern int rename_ref(const char *oldref, const char *newref, const char *logmsg);
 
-- 
1.6.1.286.gd33a4.dirty
Johannes Schindelin· Mar 9, 2009, 09:38 UTC · re: Daniel Barkalow · lore

Re: [PATCH 1/2] Use a common function to get the pretty name of refs

Hi,
On Sun, 8 Mar 2009, Daniel Barkalow wrote:
> The result should be consistent between fetch and push, so we ought to 
> use the same code in both cases, even though it's short.

You might want to mention that we cannot use skip_prefix() here, as that function does not give us any clue if something was skipped at all, and we must _not_ skip multiple prefixes.

Ciao, Dscho

Daniel Barkalow· Mar 9, 2009, 16:00 UTC · re: Johannes Schindelin · lore

Re: [PATCH 1/2] Use a common function to get the pretty name of refs

On Mon, 9 Mar 2009, Johannes Schindelin wrote:
Show 10 quoted lines
> Hi,
> 
> On Sun, 8 Mar 2009, Daniel Barkalow wrote:
> 
> > The result should be consistent between fetch and push, so we ought to 
> > use the same code in both cases, even though it's short.
> 
> You might want to mention that we cannot use skip_prefix() here, as that 
> function does not give us any clue if something was skipped at all, and we 
> must _not_ skip multiple prefixes.

I didn't even know about the skip_prefix() function; I just moved code around.

	-Daniel
*This .sig left intentionally blank*
Johannes Schindelin· Mar 9, 2009, 16:11 UTC · re: Daniel Barkalow · lore

Re: [PATCH 1/2] Use a common function to get the pretty name of refs

Hi,
On Mon, 9 Mar 2009, Daniel Barkalow wrote:
Show 13 quoted lines
> On Mon, 9 Mar 2009, Johannes Schindelin wrote:
> 
> > On Sun, 8 Mar 2009, Daniel Barkalow wrote:
> > 
> > > The result should be consistent between fetch and push, so we ought 
> > > to use the same code in both cases, even though it's short.
> > 
> > You might want to mention that we cannot use skip_prefix() here, as 
> > that function does not give us any clue if something was skipped at 
> > all, and we must _not_ skip multiple prefixes.
> 
> I didn't even know about the skip_prefix() function; I just moved code 
> around.

But I know the function. And I had to look at the code to end the head-scratching. Therefore I'd like the paragraph I wrote to be part of the commit message, to save other people from going bald.

Ciao, Dscho

← back to recent threads