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

[PATCH v5 19/22] read-cache: refactor read_index_from()

From
Christian Couder <christian.couder@gmail.com>
Date
Mar 6, 2017, 09:42 UTC
Message-ID
<20170306094203.28250-20-chriscool@tuxfamily.org>
In-Reply-To
<20170306094203.28250-1-chriscool@tuxfamily.org>

It looks better and is simpler to review when we don't compute the same things many times in the function.

It will also help make the following commit simpler.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 read-cache.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/read-cache.c b/read-cache.c
index 16c05f359b..89c95d59b3 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1691,6 +1691,8 @@ int read_index_from(struct index_state *istate, const char *path)
 {
 	struct split_index *split_index;
 	int ret;
+	char *base_sha1_hex;
+	const char *base_path;
 
 	/* istate->initialized covers both .git/index and .git/sharedindex.xxx */
 	if (istate->initialized)
@@ -1708,15 +1710,15 @@ int read_index_from(struct index_state *istate, const char *path)
 		discard_index(split_index->base);
 	else
 		split_index->base = xcalloc(1, sizeof(*split_index->base));
-	ret = do_read_index(split_index->base,
-			    git_path("sharedindex.%s",
-				     sha1_to_hex(split_index->base_sha1)), 1);
+
+	base_sha1_hex = sha1_to_hex(split_index->base_sha1);
+	base_path = git_path("sharedindex.%s", base_sha1_hex);
+	ret = do_read_index(split_index->base, base_path, 1);
 	if (hashcmp(split_index->base_sha1, split_index->base->sha1))
 		die("broken index, expect %s in %s, got %s",
-		    sha1_to_hex(split_index->base_sha1),
-		    git_path("sharedindex.%s",
-			     sha1_to_hex(split_index->base_sha1)),
+		    base_sha1_hex, base_path,
 		    sha1_to_hex(split_index->base->sha1));
+
 	merge_base_index(istate);
 	post_read_index_from(istate);
 	return ret;
-- 
2.12.0.206.g74921e51d6.dirty
Previous: Christian CouderNext: Christian Couder
Message 8 of 23 in “Add configuration options for split-index”
  1. 00/22 Add configuration options for split-indexChristian Couder, Mar 6, 2017
  2. 11/22 read-cache: regenerate shared index if necessaryChristian Couder, Mar 6, 2017
  3. 17/22 read-cache: unlink old sharedindex filesChristian Couder, Mar 6, 2017
  4. 09/22 Documentation/git-update-index: talk about core.splitIndex config varChristian Couder, Mar 6, 2017
  5. 22/22 Documentation/git-update-index: explain splitIndex.*Christian Couder, Mar 6, 2017
  6. 14/22 sha1_file: make check_and_freshen_file() non staticChristian Couder, Mar 6, 2017
  7. 20/22 read-cache: use freshen_shared_index() in read_index_from()Christian Couder, Mar 6, 2017
  8. 19/22 read-cache: refactor read_index_from()Christian Couder, Mar 6, 2017
  9. 13/22 Documentation/config: add splitIndex.maxPercentChangeChristian Couder, Mar 6, 2017
  10. 10/22 config: add git_config_get_max_percent_split_change()Christian Couder, Mar 6, 2017
  11. 06/22 update-index: warn in case of split-index incoherencyChristian Couder, Mar 6, 2017
  12. 18/22 t1700: test shared index file expirationChristian Couder, Mar 6, 2017
  13. 15/22 read-cache: touch shared index files when usedChristian Couder, Mar 6, 2017
  14. 07/22 t1700: add tests for core.splitIndexChristian Couder, Mar 6, 2017
  15. 16/22 config: add git_config_get_expiry() from gc.cChristian Couder, Mar 6, 2017
  16. 12/22 t1700: add tests for splitIndex.maxPercentChangeChristian Couder, Mar 6, 2017
  17. 04/22 split-index: add {add,remove}_split_index() functionsChristian Couder, Mar 6, 2017
  18. 21/22 Documentation/config: add splitIndex.sharedIndexExpireChristian Couder, Mar 6, 2017
  19. 02/22 t1700: change here document styleChristian Couder, Mar 6, 2017
  20. 08/22 Documentation/config: add information for core.splitIndexChristian Couder, Mar 6, 2017
  21. 05/22 read-cache: add and then use tweak_split_index()Christian Couder, Mar 6, 2017
  22. 01/22 config: mark an error message up for translationChristian Couder, Mar 6, 2017
  23. 03/22 config: add git_config_get_split_index()Christian Couder, Mar 6, 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.