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

[PATCH v4 3/9] submodule.c: sort changed_submodule_names before searching it

From
Stefan Beller <sbeller@google.com>
Date
Sep 25, 2018, 19:47 UTC
Message-ID
<20180925194755.105578-4-sbeller@google.com>
In-Reply-To
<20180925194755.105578-1-sbeller@google.com>

We can string_list_insert() to maintain sorted-ness of the list as we find new items, or we can string_list_append() to build an unsorted list and sort it at the end just once.

To pick which one is more appropriate, we notice the fact that we discover new items more or less in the already sorted order. That makes "append then sort" more appropriate.

Signed-off-by: Stefan Beller <sbeller@google.com>
---
 submodule.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/submodule.c b/submodule.c
index 0de9e2800ad..22c64bd8559 100644
--- a/submodule.c
+++ b/submodule.c
@@ -1256,7 +1256,7 @@ static int get_next_submodule(struct child_process *cp,
 		case RECURSE_SUBMODULES_DEFAULT:
 		case RECURSE_SUBMODULES_ON_DEMAND:
 			if (!submodule ||
-			    !unsorted_string_list_lookup(
+			    !string_list_lookup(
 					&changed_submodule_names,
 					submodule->name))
 				continue;
@@ -1350,6 +1350,7 @@ int fetch_populated_submodules(struct repository *r,
 	/* default value, "--submodule-prefix" and its value are added later */
 
 	calculate_changed_submodule_paths();
+	string_list_sort(&changed_submodule_names);
 	run_processes_parallel(max_parallel_jobs,
 			       get_next_submodule,
 			       fetch_start_failure,
-- 
2.19.0.605.g01d371f741-goog
Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 14 in “fetch: make sure submodule oids are fetched”
  1. 0/9 fetch: make sure submodule oids are fetchedStefan Beller, Sep 25, 2018
  2. 1/9 sha1-array: provide oid_array_filterStefan Beller, Sep 25, 2018
  3. Junio C HamanoSep 26, 2018
  4. 2/9 submodule.c: fix indentationStefan Beller, Sep 25, 2018
  5. Junio C HamanoSep 26, 2018
  6. 3/9 submodule.c: sort changed_submodule_names before searching itStefan Beller, Sep 25, 2018
  7. Junio C HamanoSep 26, 2018
  8. 4/9 submodule: move global changed_submodule_names into fetch submodule structStefan Beller, Sep 25, 2018
  9. Junio C HamanoSep 26, 2018
  10. 5/9 submodule.c: do not copy around submodule listStefan Beller, Sep 25, 2018
  11. 6/9 repository: repo_submodule_init to take a submodule structStefan Beller, Sep 25, 2018
  12. 7/9 submodule: fetch in submodules git directory instead of in worktreeStefan Beller, Sep 25, 2018
  13. 8/9 fetch: retry fetching submodules if needed objects were not fetchedStefan Beller, Sep 25, 2018
  14. 9/9 builtin/fetch: check for submodule updates for non branch fetchesStefan Beller, Sep 25, 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.