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

[PATCH v5 4/8] remote-odb: add remote_odb_reinit()

From
Christian Couder <christian.couder@gmail.com>
Date
Sep 25, 2018, 11:53 UTC
Message-ID
<20180925115341.19248-5-chriscool@tuxfamily.org>
In-Reply-To
<20180925115341.19248-1-chriscool@tuxfamily.org>
From: Christian Couder <christian.couder@gmail.com>

We will need to reinitialize the remote odb configuration as we will make some changes to it in a later commit when we will detect that a remote is also a remote odb.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 remote-odb.c | 14 ++++++++++++--
 remote-odb.h |  1 +
 2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/remote-odb.c b/remote-odb.c
index 53900203ae..cd1b393b79 100644
--- a/remote-odb.c
+++ b/remote-odb.c
@@ -64,17 +64,27 @@ static int remote_odb_config(const char *var, const char *value, void *data)
 	return 0;
 }
 
-static void remote_odb_init(void)
+static void remote_odb_do_init(int force)
 {
 	static int initialized;
 
-	if (initialized)
+	if (!force && initialized)
 		return;
 	initialized = 1;
 
 	git_config(remote_odb_config, NULL);
 }
 
+static inline void remote_odb_init(void)
+{
+	remote_odb_do_init(0);
+}
+
+void remote_odb_reinit(void)
+{
+	remote_odb_do_init(1);
+}
+
 struct odb_helper *find_odb_helper(const char *remote)
 {
 	remote_odb_init();
diff --git a/remote-odb.h b/remote-odb.h
index 221305d1b6..0d1170cf41 100644
--- a/remote-odb.h
+++ b/remote-odb.h
@@ -1,6 +1,7 @@
 #ifndef REMOTE_ODB_H
 #define REMOTE_ODB_H
 
+extern void remote_odb_reinit(void);
 extern struct odb_helper *find_odb_helper(const char *remote);
 extern int has_remote_odb(void);
 extern int remote_odb_get_direct(const struct object_id *oids, int oid_nr);
-- 
2.19.0.278.gca5b891cac
Previous: Christian CouderNext: Christian Couder
Message 5 of 12 in “Introducing remote ODBs”
  1. 0/8 Introducing remote ODBsChristian Couder, Sep 25, 2018
  2. 1/8 fetch-object: make functions return an error codeChristian Couder, Sep 25, 2018
  3. 2/8 Add initial remote odb supportChristian Couder, Sep 25, 2018
  4. 3/8 remote-odb: implement remote_odb_get_direct()Christian Couder, Sep 25, 2018
  5. 4/8 remote-odb: add remote_odb_reinit()Christian Couder, Sep 25, 2018
  6. 6/8 Use odb.origin.partialclonefilter instead of core.partialclonefilterChristian Couder, Sep 25, 2018
  7. 5/8 Use remote_odb_get_direct() and has_remote_odb()Christian Couder, Sep 25, 2018
  8. 8/8 Documentation/config: add odb.<name>.promisorRemoteChristian Couder, Sep 25, 2018
  9. Duy NguyenSep 25, 2018
  10. 7/8 t0410: test fetching from many promisor remotesChristian Couder, Sep 25, 2018
  11. SZEDER GáborSep 28, 2018
  12. Christian CouderSep 28, 2018

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.