summaryrefslogtreecommitdiff
path: root/Documentation/technical/index-format.txt
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2021-03-30 13:10:44 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-03-30 19:57:44 (GMT)
commit0ad6090bddbf01cb5778dec726fe8e799d340a6f (patch)
treec3ef9f765d3e133fd14cd62e62ab02117a46dcdf /Documentation/technical/index-format.txt
parent47957485b3b731a7860e0554d2bd12c0dce1c75a (diff)
downloadgit-0ad6090bddbf01cb5778dec726fe8e799d340a6f.zip
git-0ad6090bddbf01cb5778dec726fe8e799d340a6f.tar.gz
git-0ad6090bddbf01cb5778dec726fe8e799d340a6f.tar.bz2
sparse-index: design doc and format update
This begins a long effort to update the index format to allow sparse directory entries. This should result in a significant improvement to Git commands when HEAD contains millions of files, but the user has selected many fewer files to keep in their sparse-checkout definition. Currently, the index format is only updated in the presence of extensions.sparseIndex instead of increasing a file format version number. This is temporary, and index v5 is part of the plan for future work in this area. The design document details many of the reasons for embarking on this work, and also the plan for completing it safely. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/technical/index-format.txt')
-rw-r--r--Documentation/technical/index-format.txt7
1 files changed, 7 insertions, 0 deletions
diff --git a/Documentation/technical/index-format.txt b/Documentation/technical/index-format.txt
index d363a71..3b74c05 100644
--- a/Documentation/technical/index-format.txt
+++ b/Documentation/technical/index-format.txt
@@ -44,6 +44,13 @@ Git index format
localization, no special casing of directory separator '/'). Entries
with the same name are sorted by their stage field.
+ An index entry typically represents a file. However, if sparse-checkout
+ is enabled in cone mode (`core.sparseCheckoutCone` is enabled) and the
+ `extensions.sparseIndex` extension is enabled, then the index may
+ contain entries for directories outside of the sparse-checkout definition.
+ These entries have mode `040000`, include the `SKIP_WORKTREE` bit, and
+ the path ends in a directory separator.
+
32-bit ctime seconds, the last time a file's metadata changed
this is stat(2) data