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

[PATCH 03/11] packfile: allow install_packed_git to handle arbitrary repositories

From
Stefan Beller <sbeller@google.com>
Date
Feb 28, 2018, 01:06 UTC
Message-ID
<20180228010608.215505-4-sbeller@google.com>
In-Reply-To
<20180228010608.215505-1-sbeller@google.com>

This conversion was done without the #define trick used in the earlier series refactoring to have better repository access, because this function is easy to review, as it only has one caller and all lines but the first two are converted.

We must not convert 'pack_open_fds' to be a repository specific variable, as it is used to monitor resource usage of the machine that Git executes on.

Signed-off-by: Stefan Beller <sbeller@google.com>
---
 fast-import.c | 2 +-
 http.c        | 2 +-
 packfile.c    | 8 ++++----
 packfile.h    | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/fast-import.c b/fast-import.c
index 1685fe59a20..67550584da4 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1038,7 +1038,7 @@ static void end_packfile(void)
 		if (!new_p)
 			die("core git rejected index %s", idx_name);
 		all_packs[pack_id] = new_p;
-		install_packed_git(new_p);
+		install_packed_git(the_repository, new_p);
 		free(idx_name);
 
 		/* Print the boundary */
diff --git a/http.c b/http.c
index afe2707e86b..f3c2302f84b 100644
--- a/http.c
+++ b/http.c
@@ -2134,7 +2134,7 @@ int finish_http_pack_request(struct http_pack_request *preq)
 		return -1;
 	}
 
-	install_packed_git(p);
+	install_packed_git(the_repository, p);
 	free(tmp_idx);
 	return 0;
 }
diff --git a/packfile.c b/packfile.c
index 5ccce419354..1c24b02cc84 100644
--- a/packfile.c
+++ b/packfile.c
@@ -680,13 +680,13 @@ struct packed_git *add_packed_git(const char *path, size_t path_len, int local)
 	return p;
 }
 
-void install_packed_git(struct packed_git *pack)
+void install_packed_git(struct repository *r, struct packed_git *pack)
 {
 	if (pack->pack_fd != -1)
 		pack_open_fds++;
 
-	pack->next = the_repository->objects.packed_git;
-	the_repository->objects.packed_git = pack;
+	pack->next = r->objects.packed_git;
+	r->objects.packed_git = pack;
 }
 
 void (*report_garbage)(unsigned seen_bits, const char *path);
@@ -782,7 +782,7 @@ static void prepare_packed_git_one(char *objdir, int local)
 			     * corresponding .pack file that we can map.
 			     */
 			    (p = add_packed_git(path.buf, path.len, local)) != NULL)
-				install_packed_git(p);
+				install_packed_git(the_repository, p);
 		}
 
 		if (!report_garbage)
diff --git a/packfile.h b/packfile.h
index 6a2c57045ca..cc3bf67ab50 100644
--- a/packfile.h
+++ b/packfile.h
@@ -36,7 +36,7 @@ extern void (*report_garbage)(unsigned seen_bits, const char *path);
 
 extern void prepare_packed_git(void);
 extern void reprepare_packed_git(void);
-extern void install_packed_git(struct packed_git *pack);
+extern void install_packed_git(struct repository *r, struct packed_git *pack);
 
 /*
  * Give a rough count of objects in the repository. This sacrifices accuracy
-- 
2.16.2.395.g2e18187dfd-goog
Previous: Stefan BellerNext: Derrick Stolee
Message 4 of 23 in “Moving global state into the repository object (part 2)”
  1. 00/11 Moving global state into the repository object (part 2)Stefan Beller, Feb 28, 2018
  2. 01/11 packfile: allow prepare_packed_git_mru to handle arbitrary repositoriesStefan Beller, Feb 28, 2018
  3. 02/11 packfile: allow rearrange_packed_git to handle arbitrary repositoriesStefan Beller, Feb 28, 2018
  4. 03/11 packfile: allow install_packed_git to handle arbitrary repositoriesStefan Beller, Feb 28, 2018
  5. Derrick StoleeFeb 28, 2018
  6. 05/11 packfile: add repository argument to prepare_packed_gitStefan Beller, Feb 28, 2018
  7. 07/11 packfile: allow prepare_packed_git_one to handle arbitrary repositoriesStefan Beller, Feb 28, 2018
  8. 08/11 packfile: allow prepare_packed_git to handle arbitrary repositoriesStefan Beller, Feb 28, 2018
  9. 06/11 packfile: add repository argument to reprepare_packed_gitStefan Beller, Feb 28, 2018
  10. 11/11 packfile: allow find_pack_entry to handle arbitrary repositoriesStefan Beller, Feb 28, 2018
  11. 04/11 packfile: add repository argument to prepare_packed_git_oneStefan Beller, Feb 28, 2018
  12. 09/11 packfile: allow reprepare_packed_git to handle arbitrary repositoriesStefan Beller, Feb 28, 2018
  13. 10/11 packfile: add repository argument to find_pack_entryStefan Beller, Feb 28, 2018
  14. Duy NguyenFeb 28, 2018
  15. Derrick StoleeFeb 28, 2018
  16. Junio C HamanoFeb 28, 2018
  17. Stefan BellerFeb 28, 2018
  18. Junio C HamanoFeb 28, 2018
  19. Junio C HamanoFeb 28, 2018
  20. Stefan BellerFeb 28, 2018
  21. Jonathan NiederFeb 28, 2018
  22. Junio C HamanoFeb 28, 2018
  23. Stefan BellerFeb 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.