On 4/5/2021 9:08 PM, Junio C Hamano wrote:> * ds/clarify-hashwrite (2021-03-26) 1 commit > (merged to 'next' on 2021-03-30 at 701f5c0696) > + csum-file: make hashwrite() more readable > > The hashwrite() API always resulted in a call to write(2), even > when writing a small amount of bytes that would still fit in the > internal buffer held by the hashfile struct. It has been updated > to delay the writing until the buffer is filled or the hashfile > concluded for performance. Sorry for not noticing earlier, but this branch description is based on my erroneous understanding of the change in v1. The commit now only rearranges and comments the method to be more clear that it is correctly buffering the data. Perhaps this could be a substitute? The hashwrite() API uses a buffering mechanism to avoid calling write(2) too frequently. This logic has been refactored to be easier to understand. > * ds/sparse-index (2021-03-30) 21 commits > - p2000: add sparse-index repos > - sparse-index: loose integration with cache_tree_verify() > - cache-tree: integrate with sparse directory entries > - sparse-checkout: disable sparse-index > - sparse-checkout: toggle sparse index from builtin > - sparse-index: add index.sparse config option > - sparse-index: check index conversion happens > - unpack-trees: allow sparse directories > - submodule: sparse-index should not collapse links > - sparse-index: convert from full to sparse > - sparse-index: add 'sdir' index extension > - sparse-checkout: hold pattern list in index > - unpack-trees: ensure full index > - test-tool: don't force full index > - test-read-cache: print cache entries with --table > - t1092: compare sparse-checkout to sparse-index > - sparse-index: implement ensure_full_index() > - sparse-index: add guard to ensure full index > - t1092: clean up script quoting > - t/perf: add performance test for sparse operations > - sparse-index: design doc and format update > (this branch is used by ds/sparse-index-protections.) > > Both in-core and on-disk index has been updated to optionally omit > individual entries and replace them with the tree object that > corresponds to the directory that contains them when the "cone" > mode of sparse checkout is in use. I believe this one has been stable for a little while. Do you think it could be a candidate for 'next' soon? Alternatively, you could wait and merge ds/sparse-index and ds/sparse-index-protections at the same time. I just know that the second series is causing some merge contention with other topics. > * ds/sparse-index-protections (2021-03-31) 25 commits > - name-hash: use expand_to_path() > - sparse-index: expand_to_path() > - revision: ensure full index > - resolve-undo: ensure full index > - read-cache: ensure full index > - pathspec: ensure full index > - merge-recursive: ensure full index > - entry: ensure full index > - dir: ensure full index > - update-index: ensure full index > - stash: ensure full index > - rm: ensure full index > - merge-index: ensure full index > - ls-files: ensure full index > - grep: ensure full index > - fsck: ensure full index > - difftool: ensure full index > - commit: ensure full index > - checkout: ensure full index > - checkout-index: ensure full index > - add: ensure full index > - cache: move ensure_full_index() to cache.h > - read-cache: expand on query into sparse-directory entry > - *: remove 'const' qualifier for struct index_state > - sparse-index: API protection strategy > (this branch uses ds/sparse-index.) > > Builds on top of the sparse-index infrastructure to mark operations > that are not ready to mark with the sparse index, causing them to > fall back on fully-populated index that they always have worked with. I will have at least one more re-roll of this topic based on Elijah's latest comments. I know that this is causing merge contention with other topics, so I'm refraining from submitting more series on top until this one is merged. Thanks, -Stolee