From: Junio C Hamano Date: Wed, 16 Jul 2014 18:25:40 +0000 (-0700) Subject: Merge branch 'nd/split-index' X-Git-Tag: v2.1.0-rc0~45 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=788cef81d40070d5755490441abad1a27bc120b7;p=git Merge branch 'nd/split-index' An experiment to use two files (the base file and incremental changes relative to it) to represent the index to reduce I/O cost of rewriting a large index when only small part of the working tree changes. * nd/split-index: (32 commits) t1700: new tests for split-index mode t2104: make sure split index mode is off for the version test read-cache: force split index mode with GIT_TEST_SPLIT_INDEX read-tree: note about dropping split-index mode or index version read-tree: force split-index mode off on --index-output rev-parse: add --shared-index-path to get shared index path update-index --split-index: do not split if $GIT_DIR is read only update-index: new options to enable/disable split index mode split-index: strip pathname of on-disk replaced entries split-index: do not invalidate cache-tree at read time split-index: the reading part split-index: the writing part read-cache: mark updated entries for split index read-cache: save deleted entries in split index read-cache: mark new entries for split index read-cache: split-index mode read-cache: save index SHA-1 after reading entry.c: update cache_changed if refresh_cache is set in checkout_entry() cache-tree: mark istate->cache_changed on prime_cache_tree() cache-tree: mark istate->cache_changed on cache tree update ... --- 788cef81d40070d5755490441abad1a27bc120b7 diff --cc read-cache.c index 6a45966ec4,342fe52fda..5d3c8bd4aa --- a/read-cache.c +++ b/read-cache.c @@@ -1827,9 -1857,7 +1904,8 @@@ static int has_racy_timestamp(struct in void update_index_if_able(struct index_state *istate, struct lock_file *lockfile) { if ((istate->cache_changed || has_racy_timestamp(istate)) && - verify_index(istate) && !write_index(istate, lockfile->fd)) - commit_locked_index(lockfile); - else ++ verify_index(istate) && + write_locked_index(istate, lockfile, COMMIT_LOCK)) rollback_lock_file(lockfile); }