git/Documentation
Nguyễn Thái Ngọc Duy 5fc2fc8fa2 read-cache: split-index mode
This split-index mode is designed to keep write cost proportional to
the number of changes the user has made, not the size of the work
tree. (Read cost is another matter, to be dealt separately.)

This mode stores index info in a pair of $GIT_DIR/index and
$GIT_DIR/sharedindex.<SHA-1>. sharedindex is large and unchanged over
time while "index" is smaller and updated often. Format details are in
index-format.txt, although not everything is implemented in this
patch.

Shared indexes are not automatically removed, because it's unclear if
the shared index is needed by any (even temporary) indexes by just
looking at it. After a while you'll collect stale shared indexes. The
good news is one shared index is useable for long, until
$GIT_DIR/index becomes too big and sluggish that the new shared index
must be created.

The safest way to clean shared indexes is to turn off split index
mode, so shared files are all garbage, delete them all, then turn on
split index mode again.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-06-13 11:49:39 -07:00
..
RelNotes Git 2.0-rc1 2014-04-25 10:03:41 -07:00
howto Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
technical read-cache: split-index mode 2014-06-13 11:49:39 -07:00
.gitattributes
…
.gitignore
…
CodingGuidelines i18n: mention "TRANSLATORS:" marker in Documentation/CodingGuidelines 2014-04-18 10:48:49 -07:00
Makefile Documentation: make it easier to maintain enumerated documents 2014-01-27 09:04:32 -08:00
SubmittingPatches Merge branch 'rs/doc-submitting-patches' into maint 2013-12-17 11:38:23 -08:00
asciidoc.conf
…
blame-options.txt blame: document multiple -L support 2013-08-06 14:34:43 -07:00
build-docdep.perl
…
cat-texi.perl
…
cmd-list.perl
…
config.txt Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
date-formats.txt Correct word usage of "timezone" in "Documentation" directory 2013-11-12 10:47:17 -08:00
diff-config.txt diff: add diff.orderfile configuration variable 2013-12-18 16:39:00 -08:00
diff-format.txt
…
diff-generate-patch.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
diff-options.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
docbook-xsl.css
…
docbook.xsl
…
everyday.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
fetch-options.txt Merge branch 'nd/shallow-clone' 2014-01-17 12:21:20 -08:00
fix-texi.perl
…
git-add.txt Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-am.txt Merge branch 'cp/am-patch-format-doc' 2014-03-25 11:01:31 -07:00
git-annotate.txt
…
git-apply.txt
…
git-archimport.txt
…
git-archive.txt docs: clarify remote restrictions for git-upload-archive 2014-02-28 09:55:35 -08:00
git-bisect-lk2009.txt typofix: documentation 2013-07-22 16:06:48 -07:00
git-bisect.txt
…
git-blame.txt docs/git-blame: explain more clearly the example pickaxe use 2014-02-11 11:03:07 -08:00
git-branch.txt Refer to branch.<name>.remote/merge when documenting --track 2013-09-09 11:03:01 -07:00
git-bundle.txt
…
git-cat-file.txt cat-file: provide %(deltabase) batch format 2013-12-26 11:54:26 -08:00
git-check-attr.txt Merge branch 'jc/check-x-z' 2013-09-04 12:23:25 -07:00
git-check-ignore.txt check-ignore: Add option to ignore index contents 2013-09-12 15:40:29 -07:00
git-check-mailmap.txt builtin: add git-check-mailmap command 2013-07-13 10:19:37 -07:00
git-check-ref-format.txt Add new @ shortcut for HEAD 2013-09-12 14:39:34 -07:00
git-checkout-index.txt
…
git-checkout.txt Documentation: @{-N} can refer to a commit 2014-01-21 13:50:00 -08:00
git-cherry-pick.txt parse-options: multi-word argh should use dash to separate words 2014-03-24 10:43:34 -07:00
git-cherry.txt Documentation: revamp git-cherry(1) 2013-11-27 12:16:49 -08:00
git-citool.txt
…
git-clean.txt Documentation/git-clean: fix description for range 2013-07-24 19:16:13 -07:00
git-clone.txt docs/git-clone: clarify use of --no-hardlinks option 2014-02-11 11:03:07 -08:00
git-column.txt doc: remote author/documentation sections from more pages 2014-01-27 08:34:34 -08:00
git-commit-tree.txt commit-tree: add and document --no-gpg-sign 2014-02-24 14:51:35 -08:00
git-commit.txt Merge branch 'jc/rev-parse-argh-dashed-multi-words' 2014-04-08 11:59:27 -07:00
git-config.txt Merge branch 'jc/url-match' 2013-09-09 14:50:36 -07:00
git-count-objects.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-credential-cache--daemon.txt
…
git-credential-cache.txt
…
git-credential-store.txt
…
git-credential.txt Documentation: make AsciiDoc links always point to HTML files 2013-09-06 14:49:06 -07:00
git-cvsexportcommit.txt
…
git-cvsimport.txt Documentation: fix documentation AsciiDoc links for external urls 2014-02-20 14:14:58 -08:00
git-cvsserver.txt
…
git-daemon.txt
…
git-describe.txt use 'commit-ish' instead of 'committish' 2013-09-04 15:03:03 -07:00
git-diff-files.txt
…
git-diff-index.txt
…
git-diff-tree.txt
…
git-diff.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-difftool.txt
…
git-fast-export.txt Documentation: Update 'linux-2.6.git' -> 'linux.git' 2013-06-22 23:36:48 -07:00
git-fast-import.txt Correct word usage of "timezone" in "Documentation" directory 2013-11-12 10:47:17 -08:00
git-fetch-pack.txt Merge branch 'tb/doc-fetch-pack-url' into maint 2013-12-17 11:34:24 -08:00
git-fetch.txt Merge branch 'fc/trivial' 2013-12-17 11:46:32 -08:00
git-filter-branch.txt Documentation: fix documentation AsciiDoc links for external urls 2014-02-20 14:14:58 -08:00
git-fmt-merge-msg.txt
…
git-for-each-ref.txt doc: remote author/documentation sections from more pages 2014-01-27 08:34:34 -08:00
git-format-patch.txt format-patch doc: Thunderbird wraps lines unless mailnews.wraplength=0 2013-10-14 16:20:01 -07:00
git-fsck-objects.txt
…
git-fsck.txt
…
git-gc.txt gc --aggressive: make --depth configurable 2014-03-31 10:26:24 -07:00
git-get-tar-commit-id.txt
…
git-grep.txt Merge branch 'mg/more-textconv' 2013-10-23 13:21:31 -07:00
git-gui.txt
…
git-hash-object.txt
…
git-help.txt
…
git-http-backend.txt Merge commit 'doc/http-backend: missing accent grave in literal mark-up' 2014-04-09 11:45:04 -07:00
git-http-fetch.txt
…
git-http-push.txt
…
git-imap-send.txt
…
git-index-pack.txt
…
git-init-db.txt
…
git-init.txt
…
git-instaweb.txt
…
git-log.txt Merge branch 'jj/log-doc' into maint 2013-12-17 11:35:41 -08:00
git-ls-files.txt
…
git-ls-remote.txt ls-remote doc: don't encourage use of branches-file 2013-06-23 00:33:58 -07:00
git-ls-tree.txt
…
git-mailinfo.txt
…
git-mailsplit.txt
…
git-merge-base.txt merge-base: teach "--fork-point" mode 2013-10-29 13:06:08 -07:00
git-merge-file.txt Documentation/git-merge-file: document option "--diff3" 2013-08-09 14:19:59 -07:00
git-merge-index.txt
…
git-merge-one-file.txt
…
git-merge-tree.txt use 'tree-ish' instead of 'treeish' 2013-09-04 15:02:56 -07:00
git-merge.txt parse-options: multi-word argh should use dash to separate words 2014-03-24 10:43:34 -07:00
git-mergetool--lib.txt
…
git-mergetool.txt
…
git-mktag.txt
…
git-mktree.txt
…
git-mv.txt mv: better document side effects when moving a submodule 2014-01-07 14:33:04 -08:00
git-name-rev.txt use 'commit-ish' instead of 'committish' 2013-09-04 15:03:03 -07:00
git-notes.txt parse-options: multi-word argh should use dash to separate words 2014-03-24 10:43:34 -07:00
git-p4.txt git p4 doc: use two-line style for options with multiple spellings 2014-01-22 08:06:20 -08:00
git-pack-objects.txt upload-pack: send shallow info over stdin to pack-objects 2014-03-11 13:32:10 -07:00
git-pack-redundant.txt
…
git-pack-refs.txt Documentation: remove --prune from pack-refs examples 2013-07-18 16:23:46 -07:00
git-parse-remote.txt
…
git-patch-id.txt
…
git-prune-packed.txt git-prune-packed.txt: fix reference to GIT_OBJECT_DIRECTORY 2013-10-15 16:01:22 -07:00
git-prune.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-pull.txt Merge branch 'jc/maint-pull-docfix' into maint 2014-02-05 14:03:47 -08:00
git-push.txt Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-quiltimport.txt
…
git-read-tree.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-rebase.txt rebase: add the --gpg-sign option 2014-02-11 14:48:20 -08:00
git-receive-pack.txt
…
git-reflog.txt
…
git-relink.txt
…
git-remote-ext.txt doc: remote author/documentation sections from more pages 2014-01-27 08:34:34 -08:00
git-remote-fd.txt doc: remote author/documentation sections from more pages 2014-01-27 08:34:34 -08:00
git-remote-helpers.txto
…
git-remote-testgit.txt
…
git-remote.txt docs/git-remote: capitalize first word of initial blurb 2014-02-11 11:03:07 -08:00
git-repack.txt Merge branch 'jk/repack-pack-keep-objects' 2014-03-18 13:50:29 -07:00
git-replace.txt replace info: rename 'full' to 'long' and clarify in-code symbols 2013-12-30 12:33:11 -08:00
git-request-pull.txt request-pull: documentation updates 2014-03-13 14:22:20 -07:00
git-rerere.txt
…
git-reset.txt Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-rev-list.txt rev-list: add bitmap mode to speed up object lists 2013-12-30 12:19:22 -08:00
git-rev-parse.txt Merge branch 'ib/rev-parse-parseopt-argh' 2014-04-08 12:00:09 -07:00
git-revert.txt parse-options: multi-word argh should use dash to separate words 2014-03-24 10:43:34 -07:00
git-rm.txt rm: better document side effects when removing a submodule 2014-01-07 14:34:06 -08:00
git-send-email.txt send-email: be explicit with SSL certificate verification 2013-07-18 16:01:30 -07:00
git-send-pack.txt
…
git-sh-i18n--envsubst.txt
…
git-sh-i18n.txt
…
git-sh-setup.txt Merge branch 'jc/reflog-doc' 2013-10-18 13:50:12 -07:00
git-shell.txt
…
git-shortlog.txt
…
git-show-branch.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-show-index.txt
…
git-show-ref.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-show.txt Documentation/git-show.txt: include common diff options, like git-log.txt 2013-07-17 17:50:56 -07:00
git-stage.txt
…
git-stash.txt stash doc: mention short form -k in save description 2014-02-24 09:13:30 -08:00
git-status.txt Merge branch 'dw/doc-status-no-longer-shows-pound-prefix' 2014-03-31 16:30:52 -07:00
git-stripspace.txt
…
git-submodule.txt Revert "submodule: explicit local branch creation in module_clone" 2014-04-02 14:15:36 -07:00
git-svn.txt Git 2.0: git svn: Set default --prefix='origin/' if --prefix is not given 2014-04-19 11:30:13 +00:00
git-symbolic-ref.txt
…
git-tag.txt tag: support --sort=<spec> 2014-02-27 14:04:05 -08:00
git-tools.txt
…
git-unpack-file.txt
…
git-unpack-objects.txt Merge branch 'vd/doc-unpack-objects' into maint 2013-11-07 14:37:36 -08:00
git-update-index.txt update-index: teach --cacheinfo a new syntax "mode,sha1,path" 2014-03-24 10:43:35 -07:00
git-update-ref.txt update-ref: support multiple simultaneous updates 2013-09-09 09:54:37 -07:00
git-update-server-info.txt
…
git-upload-archive.txt add uploadarchive.allowUnreachable option 2014-02-28 09:55:37 -08:00
git-upload-pack.txt
…
git-var.txt
…
git-verify-pack.txt
…
git-verify-tag.txt
…
git-web--browse.txt web--browse: Add support for xdg-open 2013-10-30 13:54:15 -07:00
git-whatchanged.txt whatchanged: document its historical nature 2013-08-13 09:01:54 -07:00
git-write-tree.txt
…
git.txt Sync with 1.9.2 2014-04-09 12:06:14 -07:00
gitattributes.txt gitattributes: document more clearly where macros are allowed 2014-01-14 13:56:56 -08:00
gitcli.txt Merge branch 'ow/manpages-typofix' 2014-02-07 11:55:12 -08:00
gitcore-tutorial.txt Documentation: fix documentation AsciiDoc links for external urls 2014-02-20 14:14:58 -08:00
gitcredentials.txt
…
gitcvs-migration.txt Documentation: fix documentation AsciiDoc links for external urls 2014-02-20 14:14:58 -08:00
gitdiffcore.txt
…
gitglossary.txt
…
githooks.txt Documentation: fix typos in man pages 2014-02-05 14:35:45 -08:00
gitignore.txt Merge branch 'nd/gitignore-trailing-whitespace' 2014-03-14 14:23:37 -07:00
gitk.txt Documentation/gitk: document the location of the configulation file 2014-03-20 10:59:55 -07:00
gitmodules.txt Revert "submodule: explicit local branch creation in module_clone" 2014-04-02 14:15:36 -07:00
gitnamespaces.txt
…
gitremote-helpers.txt Merge branch 'fc/transport-helper-fixes' 2014-03-18 13:49:33 -07:00
gitrepository-layout.txt read-cache: split-index mode 2014-06-13 11:49:39 -07:00
gitrevisions.txt
…
gittutorial-2.txt
…
gittutorial.txt
…
gitweb.conf.txt Merge branch 'ow/manpages-typofix' 2014-02-07 11:55:12 -08:00
gitweb.txt Documentation: fix documentation AsciiDoc links for external urls 2014-02-20 14:14:58 -08:00
gitworkflows.txt
…
glossary-content.txt docs: mark info/grafts as outdated 2014-03-05 12:24:01 -08:00
howto-index.sh howto-index.sh: use the $( ... ) construct for command substitution 2014-04-17 11:14:57 -07:00
i18n.txt
…
install-doc-quick.sh
…
install-webdoc.sh install-webdoc.sh: use the $( ... ) construct for command substitution 2014-04-17 11:14:58 -07:00
line-range-format.txt line-range: teach -L^:RE to search from start of file 2013-08-06 14:48:02 -07:00
mailmap.txt
…
manpage-1.72.xsl
…
manpage-base-url.xsl.in
…
manpage-base.xsl
…
manpage-bold-literal.xsl
…
manpage-normal.xsl
…
manpage-quote-apos.xsl
…
manpage-suppress-sp.xsl
…
merge-config.txt
…
merge-options.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
merge-strategies.txt Merge branch 'rr/doc-merge-strategies' into maint 2014-04-03 13:39:03 -07:00
pretty-formats.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
pretty-options.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
pull-fetch-param.txt
…
rev-list-options.txt Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
revisions.txt Documentation: @{-N} can refer to a commit 2014-01-21 13:50:00 -08:00
sequencer.txt
…
urls-remotes.txt
…
urls.txt Merge branch 'ft/doc-git-transport' into maint 2013-07-21 22:51:24 -07:00
user-manual.conf
…
user-manual.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00