summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Couder <christian.couder@gmail.com>2017-03-06 09:42:00 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-03-06 20:09:28 (GMT)
commitde6ae5f9e3e0960e2adcba4688ed4293edc8424a (patch)
treef3b3f0a45100e1cf7525047f4a242d2efe7c82e1
parentc0441f7ef3e9e9a8ee7888e00472c6957bd90b2d (diff)
downloadgit-de6ae5f9e3e0960e2adcba4688ed4293edc8424a.zip
git-de6ae5f9e3e0960e2adcba4688ed4293edc8424a.tar.gz
git-de6ae5f9e3e0960e2adcba4688ed4293edc8424a.tar.bz2
read-cache: refactor read_index_from()
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--read-cache.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/read-cache.c b/read-cache.c
index 39002bc..ace3fc5 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1699,6 +1699,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)
@@ -1716,15 +1718,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;