Subject: [PATCH 00/32] Split index resend

From: Nguyễn Thái Ngọc Duy <[email-masked]>
Date: Fri, 13 Jun 2014 19:19:19 +0700

This is basically what's in 'pu' with fixup patches squashed in (also
resend is a good way to get people's eyes on it one more time).
There's also another minor change that SOMETHING_CHANGED now has value
1.  This is the usual value of cache_changed before this series. So if
another in-flight series update cache_changed the old way, nothing's
subtly broken.

Nguyễn Thái Ngọc Duy (32):
  ewah: fix constness of ewah_read_mmap
  ewah: delete unused ewah_read_mmap_native declaration
  sequencer: do not update/refresh index if the lock cannot be held
  read-cache: new API write_locked_index instead of write_index/write_cache
  read-cache: relocate and unexport commit_locked_index()
  read-cache: store in-memory flags in the first 12 bits of ce_flags
  read-cache: be strict about "changed" in remove_marked_cache_entries()
  read-cache: be specific what part of the index has changed
  update-index: be specific what part of the index has changed
  resolve-undo: be specific what part of the index has changed
  unpack-trees: be specific what part of the index has changed
  cache-tree: mark istate->cache_changed on cache tree invalidation
  cache-tree: mark istate->cache_changed on cache tree update
  cache-tree: mark istate->cache_changed on prime_cache_tree()
  entry.c: update cache_changed if refresh_cache is set in checkout_entry()
  read-cache: save index SHA-1 after reading
  read-cache: split-index mode
  read-cache: mark new entries for split index
  read-cache: save deleted entries in split index
  read-cache: mark updated entries for split index
  split-index: the writing part
  split-index: the reading part
  split-index: do not invalidate cache-tree at read time
  split-index: strip pathname of on-disk replaced entries
  update-index: new options to enable/disable split index mode
  update-index --split-index: do not split if $GIT_DIR is read only
  rev-parse: add --shared-index-path to get shared index path
  read-tree: force split-index mode off on --index-output
  read-tree: note about dropping split-index mode or index version
  read-cache: force split index mode with GIT_TEST_SPLIT_INDEX
  t2104: make sure split index mode is off for the version test
  t1700: new tests for split-index mode

 .gitignore                               |   1 +
 Documentation/git-rev-parse.txt          |   4 +
 Documentation/git-update-index.txt       |  11 ++
 Documentation/gitrepository-layout.txt   |   4 +
 Documentation/technical/index-format.txt |  35 ++++
 Makefile                                 |   2 +
 builtin/add.c                            |   6 +-
 builtin/apply.c                          |  17 +-
 builtin/blame.c                          |   2 +-
 builtin/checkout-index.c                 |   4 +-
 builtin/checkout.c                       |  12 +-
 builtin/clone.c                          |   7 +-
 builtin/commit.c                         |  33 ++--
 builtin/merge.c                          |  12 +-
 builtin/mv.c                             |   7 +-
 builtin/read-tree.c                      |  18 +-
 builtin/reset.c                          |   7 +-
 builtin/rev-parse.c                      |  10 +
 builtin/rm.c                             |   7 +-
 builtin/update-index.c                   |  33 +++-
 cache-tree.c                             |  52 ++---
 cache-tree.h                             |   6 +-
 cache.h                                  |  28 ++-
 entry.c                                  |   3 +
 ewah/ewah_io.c                           |   4 +-
 ewah/ewok.h                              |   3 +-
 lockfile.c                               |  20 --
 merge-recursive.c                        |  11 +-
 merge.c                                  |   7 +-
 read-cache.c                             | 270 ++++++++++++++++++++++---
 rerere.c                                 |   3 +-
 resolve-undo.c                           |   2 +-
 sequencer.c                              |  16 +-
 split-index.c (new)                      | 328 +++++++++++++++++++++++++++++++
 split-index.h (new)                      |  35 ++++
 t/t1700-split-index.sh (new +x)          | 194 ++++++++++++++++++
 t/t2104-update-index-skip-worktree.sh    |   2 +
 test-dump-cache-tree.c                   |   7 +-
 test-dump-split-index.c (new)            |  34 ++++
 test-scrap-cache-tree.c                  |   5 +-
 unpack-trees.c                           |  18 +-
 41 files changed, 1088 insertions(+), 192 deletions(-)
 create mode 100644 split-index.c
 create mode 100644 split-index.h
 create mode 100755 t/t1700-split-index.sh
 create mode 100644 test-dump-split-index.c

-- 
1.9.1.346.ga2b5940