git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/7] Add helper for skipping namespace prefixes

From
Richard Maw <richard.maw@gmail.com>
Date
Aug 13, 2017, 19:36 UTC
Message-ID
<20170813193611.4233-4-richard.maw@gmail.com>
In-Reply-To
<20170813193611.4233-1-richard.maw@gmail.com>
Normally your own namespace is known and you only need to skip that prefix,
but when you need to classify the type of a ref
it helps to be able to consider what type of ref it would be
if it were outside of a namespace.
---
 git-compat-util.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
diff --git a/git-compat-util.h b/git-compat-util.h
index db9c22d..c5e0a34 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -501,6 +501,25 @@ static inline int skip_prefix_mem(const char *buf, size_t len,
 	return 0;
 }
 
+static inline int skip_namespace(const char *refname, const char **out)
+{
+	const char *c = refname;
+
+	while (skip_prefix(c, "refs/namespaces/", &c)) {
+		c = strchr(c, '/');
+		if (!c)
+			return 0;
+
+		c++;
+	}
+
+	if (c == refname)
+		return 0;
+
+	*out = c;
+	return 1;
+}
+
 /*
  * If buf ends with suffix, return 1 and subtract the length of the suffix
  * from *len. Otherwise, return 0 and leave *len untouched.
-- 
2.9.0
Previous: Richard MawNext: Richard Maw
Message 4 of 13 in “Implement ref namespaces as a ref storage backend”
  1. 0/7 Implement ref namespaces as a ref storage backendRichard Maw, Aug 13, 2017
  2. 1/7 Expose expand_namespace APIRichard Maw, Aug 13, 2017
  3. 2/7 Add git_configset_add_standardRichard Maw, Aug 13, 2017
  4. 3/7 Add helper for skipping namespace prefixesRichard Maw, Aug 13, 2017
  5. 4/7 Autocreate reflogs for namespaced refsRichard Maw, Aug 13, 2017
  6. 5/7 Treat namespaced HEAD and refs/bisect as per-worktreeRichard Maw, Aug 13, 2017
  7. 6/7 Add namespaced ref backendRichard Maw, Aug 13, 2017
  8. 7/7 Plumb in namespaced ref storeRichard Maw, Aug 13, 2017
  9. Stefan BellerAug 14, 2017
  10. Junio C HamanoAug 15, 2017
  11. Richard MawAug 24, 2017
  12. Michael HaggertyAug 24, 2017
  13. Richard MawAug 30, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.