diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2021-03-30 13:10:44 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-03-30 19:57:44 (GMT) |
commit | 0ad6090bddbf01cb5778dec726fe8e799d340a6f (patch) | |
tree | c3ef9f765d3e133fd14cd62e62ab02117a46dcdf /Documentation/technical/index-format.txt | |
parent | 47957485b3b731a7860e0554d2bd12c0dce1c75a (diff) | |
download | git-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.txt | 7 |
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 |