Rebase of vfs-2.43.0 onto the latest Git for Windows release (v2.44.0.windows.1). Other than some minor conflicts & header changes, I only had to make one real change (adding a permissions: block to the release creation step of build-git-installers.yml, since GITHUB_TOKEN is now read-only by default).
Rebase of
vfs-2.43.0
onto the latest Git for Windows release (v2.44.0.windows.1
). Other than some minor conflicts & header changes, I only had to make one real change (adding apermissions:
block to the release creation step ofbuild-git-installers.yml
, sinceGITHUB_TOKEN
is now read-only by default).Successful release build: link
Range diff vs. vfs-2.43.0
```diff 1: a974b140e7e = 1: 08acea8cbf7 reset --stdin: trim carriage return from the paths 2: ad8d0b9e683 ! 2: a75168a73b0 gvfs: start by adding the -gvfs suffix to the version @@ GIT-VERSION-GEN #!/bin/sh GVF=GIT-VERSION-FILE --DEF_VER=v2.43.0 -+DEF_VER=v2.43.0.vfs.0.0 +-DEF_VER=v2.44.0 ++DEF_VER=v2.44.0.vfs.0.0 LF=' ' 3: fca083a25fd ! 3: 1db481ce86b gvfs: ensure that the version is based on a GVFS tag @@ GIT-VERSION-GEN @@ GIT-VERSION-GEN: if test -f version then VN=$(cat version) || VN="$DEF_VER" - elif test -d ${GIT_DIR:-.git} -o -f .git && + elif { test -d "${GIT_DIR:-.git}" || test -f .git; } && - VN=$(git describe --match "v[0-9]*" HEAD 2>/dev/null) && + VN=$(git describe --match "v[0-9]*vfs*" HEAD 2>/dev/null) && case "$VN" in 4: d78de08d4bd = 4: 7cc11e5cd32 gvfs: add a GVFS-specific header file 5: 3556ea040b1 = 5: 656515f4136 gvfs: add the core.gvfs config setting 6: ccf7f70ff59 = 6: 2ad35f3e596 gvfs: add the feature to skip writing the index' SHA-1 7: 1aa12488ce1 = 7: 69804bb0632 gvfs: add the feature that blobs may be missing 8: e44e823fa28 = 8: 08e1394797f gvfs: prevent files to be deleted outside the sparse checkout 9: f4de9c9245d = 9: 8f948063f65 gvfs: optionally skip reachability checks/upload pack during fetch 10: 4728ebcc650 = 10: 425f60c8ed4 gvfs: ensure all filters and EOL conversions are blocked 11: 9c2a07a19a3 = 11: 180933810bd gvfs: allow "virtualizing" objects 12: 22066333557 = 12: 6829117a64e Hydrate missing loose objects in check_and_freshen() 13: b7c8f6e7c07 = 13: 41d24c3022a sha1_file: when writing objects, skip the read_object_hook 14: 841fbcf104d = 14: c10e77da347 gvfs: add global command pre and post hook procs 15: 7d495f88c08 = 15: 5a78b0cdd62 t0400: verify that the hook is called correctly from a subdirectory 16: d589761797d = 16: bcbcbb1c7e1 Pass PID of git process to hooks. 17: 82294a93745 = 17: 2135705af70 pre-command: always respect core.hooksPath 18: e53d8d9f31b = 18: 8173d74ba67 sparse-checkout: update files with a modify/delete conflict 19: a3c5312fd64 = 19: 5cf57938570 sparse-checkout: avoid writing entries with the skip-worktree bit 20: 31ec87619e6 = 20: 9fea45ae4fe Do not remove files outside the sparse-checkout 21: a147bf0918e ! 21: 203814b133b send-pack: do not check for sha1 file when GVFS_MISSING_OK set @@ Commit message ## send-pack.c ## @@ + #include "date.h" #include "gettext.h" #include "hex.h" - #include "refs.h" +#include "gvfs.h" #include "object-store-ll.h" #include "pkt-line.h" 22: a25fe519c1b = 22: 9f0e5f92d0d cache-tree: remove use of strbuf_addf in update_one 23: 30a0f59f942 ! 23: d724e71925e gvfs: block unsupported commands when running in a GVFS repo @@ git.c: static struct cmd_struct commands[] = { - { "repack", cmd_repack, RUN_SETUP }, + { "repack", cmd_repack, RUN_SETUP | BLOCK_ON_GVFS_REPO }, { "replace", cmd_replace, RUN_SETUP }, + { "replay", cmd_replay, RUN_SETUP }, { "rerere", cmd_rerere, RUN_SETUP }, - { "reset", cmd_reset, RUN_SETUP }, @@ git.c: static struct cmd_struct commands[] = { { "stash", cmd_stash, RUN_SETUP | NEED_WORK_TREE }, { "status", cmd_status, RUN_SETUP | NEED_WORK_TREE }, 24: 094e64e9393 = 24: 40bf6bdc2e6 worktree: allow in Scalar repositories 25: a7dea34e2eb = 25: a202667840a gvfs: allow overriding core.gvfs 26: 543775e1f08 = 26: 12b66632d06 BRANCHES.md: Add explanation of branches and using forks 27: ff2514c3baa = 27: 81dc570c885 Add virtual file system settings and hook proc 28: 23e0749dd79 = 28: 8c1e2c850ef virtualfilesystem: don't run the virtual file system hook if the index has been redirected 29: 4a58f5adfe9 = 29: 456cdb53e24 virtualfilesystem: check if directory is included 30: 9fda9ad8172 = 30: 3e677ad52d6 backwards-compatibility: support the post-indexchanged hook 31: 457e6a4df56 = 31: 9e268843229 gvfs: verify that the built-in FSMonitor is disabled 32: 112fa44e526 = 32: a3f9c230b39 status: add status serialization mechanism 33: e8e29af029b = 33: afa8244ae37 Teach ahead-behind and serialized status to play nicely together 34: 5779892550a = 34: b9a54bf736e status: serialize to path 35: 631b36502aa = 35: 9adbd522e38 status: reject deserialize in V2 and conflicts 36: 69f28807dc0 = 36: 3f92ef4b1f5 serialize-status: serialize global and repo-local exclude file metadata 37: 46da1e99df2 = 37: 3533ff3e2f2 status: deserialization wait 38: dc54eb4dfa6 = 38: 4f0dc9551f0 merge-recursive: avoid confusing logic in was_dirty() 39: 8e008505bff = 39: a6513c48f1a merge-recursive: add some defensive coding to was_dirty() 40: a31e2c58723 ! 40: 62073556915 merge-recursive: teach was_dirty() about the virtualfilesystem @@ merge-recursive.c #include "merge-recursive.h" +#include "virtualfilesystem.h" - #include "advice.h" #include "alloc.h" + #include "cache-tree.h" @@ merge-recursive.c: static int was_dirty(struct merge_options *opt, const char *path) { struct cache_entry *ce; 41: daa14a814c3 = 41: f37bdd5aa94 status: deserialize with -uno does not print correct hint 42: a6bf6f10467 = 42: 25c3e0b4ecb fsmonitor: check CE_FSMONITOR_VALID in ce_uptodate 43: e8099de4c93 = 43: d23c6d3d43a fsmonitor: add script for debugging and update script for tests 44: 10bf9c11a5a = 44: 7788fa91d95 status: disable deserialize when verbose output requested. 45: c48f9a9265c = 45: da3a0631d54 t7524: add test for verbose status deserialzation 46: ca53dad7a4d = 46: bc53d5282db deserialize-status: silently fallback if we cannot read cache file 47: 56c9f6e7457 = 47: cbd50404fbe gvfs:trace2:data: add trace2 tracing around read_object_process 48: c400ad0a0f0 = 48: e77727e7d72 gvfs:trace2:data: status deserialization information 49: 2bd8a8b2a4f = 49: 69bc46aa01d gvfs:trace2:data: status serialization 50: 5f31f1b1c4e = 50: 375bcec8825 gvfs:trace2:data: add vfs stats 51: 2bd6834f19e = 51: 6c017b4a8c1 trace2: refactor setting process starting time 52: d51366d5ab7 = 52: 50541e7274d trace2:gvfs:experiment: clear_ce_flags_1 53: a1f300ea1de = 53: e84e9bbf100 trace2:gvfs:experiment: report_tracking 54: 33229f6bba7 = 54: 7d833880f8b trace2:gvfs:experiment: read_cache: annotate thread usage in read-cache 55: ed99b1b7943 = 55: 2e92c186789 trace2:gvfs:experiment: read-cache: time read/write of cache-tree extension 56: d68452cd696 = 56: f9a546e1a88 trace2:gvfs:experiment: add region to apply_virtualfilesystem() 57: 025fd6a8182 = 57: 8a09e08d230 trace2:gvfs:experiment: add region around unpack_trees() 58: a90ad70eeec = 58: 2424bb01579 trace2:gvfs:experiment: add region to cache_tree_fully_valid() 59: a7682145141 = 59: dfa422ca12c trace2:gvfs:experiment: add unpack_entry() counter to unpack_trees() and report_tracking() 60: 9f23c0fa6d8 = 60: d9fbd93535d trace2:gvfs:experiment: increase default event depth for unpack-tree data 61: af18d6b0051 = 61: ee1ef573aec trace2:gvfs:experiment: add data for check_updates() in unpack_trees() 62: c9403b87c58 = 62: 41c5b125445 Trace2:gvfs:experiment: capture more 'tracking' details 63: 93ed390ecb5 = 63: 49870a50a05 credential: set trace2_child_class for credential manager children 64: f9ff1804283 = 64: f6fca70aa52 sub-process: do not borrow cmd pointer from caller 65: 2224c09d1ff = 65: 327886ffef1 sub-process: add subprocess_start_argv() 66: b6216597571 = 66: 154bddbd1d1 sha1-file: add function to update existing loose object cache 67: c9a3d2862ca = 67: 99bb46ecc11 packfile: add install_packed_git_and_mru() 68: 4fb7e705915 = 68: 1095cd42be6 index-pack: avoid immediate object fetch while parsing packfile 69: ac8e9f9b20d ! 69: 5c54630ff0c gvfs-helper: create tool to fetch objects using the GVFS Protocol @@ Makefile: scalar$X: scalar.o GIT-LDFLAGS $(GITLIBS) ## config.c ## @@ - #include "worktree.h" + #include "wildmatch.h" #include "ws.h" #include "write-or-die.h" +#include "transport.h" @@ gvfs-helper.c (new) +#include "tempfile.h" +#include "oidset.h" +#include "dir.h" ++#include "url.h" +#include "abspath.h" +#include "progress.h" +#include "trace2.h" 70: 0d67b3b5ab5 = 70: f3dc228a1d9 sha1-file: create shared-cache directory if it doesn't exist 71: 412fe9cd273 = 71: 73a6cc3f419 gvfs-helper: better handling of network errors 72: 4512d14cbc3 = 72: ca24fc3908d gvfs-helper-client: properly update loose cache with fetched OID 73: 2f700e605c1 = 73: 0f79deb5c9a gvfs-helper: V2 robust retry and throttling 74: a6e9d9e86c0 = 74: a5e5deec5e7 gvfs-helper: expose gvfs/objects GET and POST semantics 75: 5d60e526f60 = 75: 08fc2eea45d gvfs-helper: dramatically reduce progress noise 76: 49dce2c3743 = 76: c503dd52086 gvfs-helper-client.h: define struct object_id 77: 4a8e7400b5a = 77: 531ffc5d4bf gvfs-helper: handle pack-file after single POST request 78: a037644be53 = 78: ca192b7e289 test-gvfs-prococol, t5799: tests for gvfs-helper 79: cb005dba97f = 79: 1f348460f67 gvfs-helper: move result-list construction into install functions 80: 34c9ff09150 = 80: 1528d924d0f t5799: add support for POST to return either a loose object or packfile 81: b83f2f26dca = 81: 03298f94d16 t5799: cleanup wc-l and grep-c lines 82: a2ffa643a85 = 82: 08188f98a33 gvfs-helper: verify loose objects after write 83: 9e324387f37 = 83: 6a55d771b0d t7599: create corrupt blob test 84: 69a82cee38f = 84: 05c4105e4b2 gvfs-helper: add prefetch support 85: 303a0088c10 = 85: 328ac49d29b gvfs-helper: add prefetch .keep file for last packfile 86: 8168ff201bd = 86: 3bd3ff1ce42 gvfs-helper: do one read in my_copy_fd_len_tail() 87: c03629fd310 = 87: 85b6d4409ab gvfs-helper: move content-type warning for prefetch packs 88: 1538ce2707c = 88: f71d33481b5 fetch: use gvfs-helper prefetch under config 89: ccb306f6880 = 89: f7524212420 gvfs-helper: better support for concurrent packfile fetches 90: a2156c964e7 = 90: 0f68cb63e8b remote-curl: do not call fetch-pack when using gvfs-helper 91: dfb5b012b06 ! 91: d356ff2db87 fetch: reprepare packs before checking connectivity @@ Commit message Signed-off-by: Derrick Stolee