-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rebase to v2.38.0 #533
Rebase to v2.38.0 #533
Conversation
0517c93
to
f72ed24
Compare
Minor change since I posted that range-diff, necessary to let the code compile ( |
I was looking at the patches that we are carrying forward for opportunities to upstream, but I see some other things that we might want to just drop instead:
I should check the following and either upstream them or drop them: |
f72ed24
to
47b56ab
Compare
@derrickstolee thank you so much! TBH while I had meant to look at the patches in detail, I had completely forgotten by the time I had crossed the ocean. I appreciate your attention very, very much!
I looked through all of those and agree with all of your suggestions. I added the corresponding
Good thinking! I'll keep these commits for the time being, as a reminder. One thing that I would like to call to your attention (in particular the attention of @derrickstolee and @vdye!): Due to the changes of 65f6a9e, This made a test case fail that we added originally, where we specifically verify that I've addressed this via f914ffd, essentially reversing the test case to verify that we do not find the enlistment in that scenario. But the longer I think about it, the more certain I become that this is not what we need, as it is a hard-to-explain behavior when In fact, I have come to believe that we need to fix this, also in upstream, so that @vdye what do you think? |
This was a purposeful change upstream to simplify the enlistment selection process. To my mind, the only thing we really need is to be able to say Keep in mind that "the enlistment" is significantly less important in Scalar than in VFS for Git. VFS for Git needs it because the |
How certain are we that there are no existing users calling something like |
It sure simplifies things if we do not have to support this. I tried for almost an hour to make it work, here is my work-in-progress, and I failed so far. Will be very happy to abandon this effort 😁. |
34a5d8a
to
f68e8af
Compare
Range-diff relative to `tentative/vfs-2.38.0-rc0-clean` (which is tree-same to 34a5d8a, i.e. the pre-rebase-to-rc1 state)
Two things are notable in addition to the upstreamed commits 268fce8, 5555fd5, 54f277e, c69c30c and 22b7e73 (some of which were admittedly transmogrified quite a bit):
|
7e590a9
to
05d07d7
Compare
I needed to revert two Scalar commits, still, to make this work (they did not conflict, but are obsolete now that Scalar moved out of |
These commits weren't upstreamed because the documentation was intentionally consolidated into only
Overall, I still think it's more consistent with upstream to drop these Markdown files, incorporating the important bits into either the command documentation or design doc. I'm happy to do that, but I'll also gladly let someone else do it. 🙂 This wasn't unintentional, it was done because it seemed more consistent with other, similar targets (e.g. |
These docs are also linked from places like |
07c45f0
to
30d3d55
Compare
Range-diff relative to the -rc1 rebase
|
While using the reset --stdin feature on windows path added may have a \r at the end of the path that wasn't getting removed so didn't match the path in the index and wasn't reset. Signed-off-by: Kevin Willford <kewillf@microsoft.com>
Signed-off-by: Saeed Noursalehi <sanoursa@microsoft.com>
Since we really want to be based on a `.vfs.*` tag, let's make sure that there was a new-enough one, i.e. one that agrees with the first three version numbers of the recorded default version. This prevents e.g. v2.22.0.vfs.0.<some-huge-number>.<commit> from being used when the current release train was not yet tagged. It is important to get the first three numbers of the version right because e.g. Scalar makes decisions depending on those (such as assuming that the `git maintenance` built-in is not available, even though it actually _is_ available). Signed-off-by: Johannes Schindelin <johasc@microsoft.com>
This header file will accumulate GVFS-specific definitions. Signed-off-by: Kevin Willford <kewillf@microsoft.com>
This does not do anything yet. The next patches will add various values for that config setting that correspond to the various features offered/required by GVFS. Signed-off-by: Kevin Willford <kewillf@microsoft.com>
This takes a substantial amount of time, and if the user is reasonably sure that the files' integrity is not compromised, that time can be saved. Git no longer verifies the SHA-1 by default, anyway. Signed-off-by: Kevin Willford <kewillf@microsoft.com>
Signed-off-by: Kevin Willford <kewillf@microsoft.com>
Prevent the sparse checkout to delete files that were marked with skip-worktree bit and are not in the sparse-checkout file. This is because everything with the skip-worktree bit turned on is being virtualized and will be removed with the change of HEAD. There was only one failing test when running with these changes that was checking to make sure the worktree narrows on checkout which was expected since we would no longer be narrowing the worktree. Update 2022-04-05: temporarily set 'sparse.expectfilesoutsideofpatterns' in test (until we start disabling the "remove present-despite-SKIP_WORKTREE" behavior with 'core.virtualfilesystem' in a later commit). Signed-off-by: Kevin Willford <kewillf@microsoft.com>
This adds hard-coded call to GVFS.hooks.exe before and after each Git command runs. To make sure that this is only called on repositories cloned with GVFS, we test for the tell-tale .gvfs. 2021-10-30: Recent movement of find_hook() to hook.c required moving these changes out of run-command.c to hook.c. Signed-off-by: Ben Peart <Ben.Peart@microsoft.com>
With this change, we come a big step closer to feature parity with Scalar: this allows cloning from Azure Repos (which do not support partial clones at time of writing). We use the just-implemented JSON parser to parse the response we got from the `gvfs/config` endpoint; Please note that this response might, or might not, contain information about a cache server. The presence or absence of said cache server, however, has nothing to do with the ability to speak the GVFS protocol (but the presence of the `gvfs/config` endpoint does that). An alternative considered during the development of this patch was to perform simple string matching instead of parsing the JSON-formatted data; However, this would have been fragile, as the response contains free-form text (e.g. the repository's description) which might contain parts that would confuse a simple string matcher (but not a proper JSON parser). Note: we need to limit the re-try logic in `git clone` to handle only the non-GVFS case: the call to `set_config()` to un-set the partial clone settings would otherwise fail because those settings would not exist in the GVFS protocol case. This will at least give us a clearer reason why such a fetch fails. Co-authored-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
This comes in handy, as we want to verify that `scalar clone` also works against a GVFS-enabled remote repository. Note that we have to set `MSYS2_ENV_CONV_EXCL` to prevent MSYS2 from mangling `PATH_TRANSLATED`: The value _does_ look like a Unix-style path, but no, MSYS2 must not be allowed to convert that into a Windows path: `http-backend` needs it in the unmodified form. (The MSYS2 runtime comes in when `git` is run via `bin-wrappers/git`, which is a shell script.) Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
We already have the `config` command that accesses the `gvfs/config` endpoint. To implement `scalar`, we also need to be able to access the `vsts/info` endpoint. Let's add a command to do precisely that. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
On Windows, both the forward slash and the backslash are directory separators. Which means that `a\b\c` really is inside `a/b`. Therefore, we need to special-case the directory separators in the helper function `cmp_icase()` that is used in the loop in `dir_inside_of()`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Modified to remove call to is_unattended() that has not been implemented yet. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This finalizes the port of the `QueryVstsInfo()` function: we already taught `gvfs-helper` to access the `vsts/info` endpoint on demand, we implemented proper JSON parsing, and now it is time to hook it all up. To that end, we also provide a default local cache root directory. It works the same way as the .NET version of Scalar: it uses C:\scalarCache on Windows, ~/.scalarCache/ on macOS and ~/.cache/scalar on Linux Modified to include call to is_unattended() that was removed from a previous commit. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Well, technically also the http:// protocol is allowed _when testing_... Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Azure Repos does not support partial clones at the moment, but it does support the GVFS protocol. To that end, the Microsoft fork of Git has a `gvfs-helper` command that is optionally used to perform essentially the same functionality as partial clone. Let's verify that `scalar clone` detects that situation and enables the GVFS helper. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This allows setting the GVFS-enabled cache server, or listing the one(s) associated with the remote repository. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In Scalar's functional tests, we do not do anything with authentication. Therefore, we do want to avoid accessing the `vsts/info` endpoint because it requires authentication even on otherwise public repositories. Let's introduce the environment variable `SCALAR_TEST_SKIP_VSTS_INFO` which can be set to `true` to simply skip that step (and force the `url_*` style repository IDs instead of `id_*` whenever possible). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Scalar in Microsoft's Git fork can do a little more than Scalar in upstream Git: in Microsoft's Git, it supports the GVFS protocol so that Scalar can clone from Azure DevOps. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Those tests specifically verify that the `.zip` file path is shown on `stdout`. Let's do that again, under the assumption that there are scripts out there that rely on this behavior. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
…atibility This option does not do anything anymore, though. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Scalar's Functional Test suite is pretty comprehensive, and caught more than just one bug in the built-in FSMonitor that was missed by Git's own test suite. To benefit from this test suite, automatically run it on the `vfs-*` and `features/*` branches. Note: for simplicity, we're building Git from scratch in all matrix jobs. Also note: for speed, we are using `git-sdk-64-minimal`, even if it lacks the `/bin/install` that we need to install Git's files; We're providing a minimal shell script shim instead. Also, we do not need to bother with the Tcl/Tk parts, therefore we're skipping them, too. Finally, we use GIT_FORCE_UNTRACKED_CACHE in the functional tests, to give the untracked cache a thorough work-out. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Prepare `scalar` to use the GVFS protocol instead of partial clone (required to support Azure Repos). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
There are many reasons why discovering a Git directory may fail. In particular, 8959555 (setup_git_directory(): add an owner check for the top-level directory, 2022-03-02) added ownership checks as a security precaution. Callers attempting to set up a Git directory may want to inform the user about the reason for the failure. For that, expose the enum discovery_result from within setup.c and into cache.h where discover_git_directory() is defined. I initially wanted to change the return type of discover_git_directory() to be this enum, but several callers rely upon the "zero means success". The two problems with this are: 1. The zero value of the enum is actually GIT_DIR_NONE, so nonpositive results are errors. 2. There are multiple successful states, so some positive results are successful. Instead of updating all callers immediately, add a new method, discover_git_directory_reason(), and convert discover_git_directory() to be a thin shim on top of it. Because there are extra checks that discover_git_directory_reason() does after setup_git_directory_gently_1(), there are other modes that can be returned for failure states. Add these modes to the enum, but be sure to explicitly add them as BUG() states in the switch of setup_git_directory_gently(). Signed-off-by: Derrick Stolee <derrickstolee@github.com>
When FSMonitor was upstreamed, the 'core.useBuiltinFSMonitor' config was deprecated and replaced with an overload of the 'core.fsmonitor' config (i.e., if a boolean value was specified in 'core.fsmonitor', it is treated the way 'core.useBuiltinFSMonitor' originally was). Because 'scalar register' actively sets that config, use it to upgrade the deprecated config setting. Co-authored-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Victoria Dye <vdye@github.com>
Run the comprehensive Scalar Functional Tests as part of CI and PR builds. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
When running 'scalar reconfigure -a', such as at install time, Scalar has warning messages about the repository missing (or not containing a .git directory). Failures can also happen while trying to modify the repository-local config for that repository. These warnings may seem confusing to users who don't understand what they mean or how to stop them. Add a warning that instructs the user how to remove the warning in future installations. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
This allows fixing settings after a Scalar upgrade, or after botching the enlistments configuration. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
…s remove buggy repos When running 'scalar reconfigure -a', such as at install time, Scalar has warning messages about the repository missing (or not containing a .git directory). Failures can also happen while trying to modify the repository-local config for that repository. These warnings may seem confusing to users who don't understand what they mean or how to stop them. Add a warning that instructs the user how to remove the warning in future installations.
…-and-fix-built-in-fsmonitor Fix the built-in FSMonitor, and run Scalar's Functional Tests as part of the automated builds
This is random stuff that probably all got upstream in the meantime.
Whoops. @vdye my apologies, I had totally missed this PR comment :-( I've force-pushed an update. Range-diff:
|
1e3e674
to
96d6fe3
Compare
Whoa, I had also missed this... @derrickstolee sorry! After rebasing |
Range-diff relative to `vfs-2.37.3`
1: 8e3669d = 1: cbda0fc reset --stdin: trim carriage return from the paths
2: 43a66d8 ! 2: 8d54217 gvfs: start by adding the -gvfs suffix to the version
3: 77f508a = 3: 62974be gvfs: ensure that the version is based on a GVFS tag
4: 056ca18 = 4: ed9c60a gvfs: add a GVFS-specific header file
5: d5ce986 = 5: 9828d07 gvfs: add the core.gvfs config setting
6: bd9d315 = 6: 59ce798 gvfs: add the feature to skip writing the index' SHA-1
7: 999cb17 = 7: 2a37457 gvfs: add the feature that blobs may be missing
8: c8cc895 = 8: aed0cdf gvfs: prevent files to be deleted outside the sparse checkout
9: 783ad42 = 9: f19dea0 gvfs: optionally skip reachability checks/upload pack during fetch
10: cafc706 = 10: fa1a731 gvfs: ensure all filters and EOL conversions are blocked
11: d20acb4 = 11: 9f3d939 gvfs: allow "virtualizing" objects
12: 50ba19c = 12: 1a4a541 Hydrate missing loose objects in check_and_freshen()
122: 708ab2b = 13: 425673a cmake: optionally build
scalar
, too123: aa5950b = 14: af6589c ci: also run the
scalar
tests158: 19b27b3 ! 15: 0a7848e sparse-checkout: add config to disable deleting dirs
160: e783358 = 16: 9b281f4 diff: ignore sparse paths in diffstat
169: 9395014 = 17: b06c20e sequencer: avoid progress when stderr is redirected
13: 2ccca99 ! 18: 327dd3a sha1_file: when writing objects, skip the read_object_hook
14: 0e69f8b = 19: 6f2a13e gvfs: add global command pre and post hook procs
15: 810765d = 20: f5f4e75 t0400: verify that the hook is called correctly from a subdirectory
16: 9bacc54 = 21: 81d822b Pass PID of git process to hooks.
17: bc255a9 = 22: d4be59a pre-command: always respect core.hooksPath
18: c2fbb88 = 23: 3eebbaf sparse-checkout: update files with a modify/delete conflict
19: b0dbec1 = 24: 47edf2c sparse-checkout: avoid writing entries with the skip-worktree bit
20: 7a24c7b = 25: 4f9c504 Do not remove files outside the sparse-checkout
21: 57768b0 = 26: ea7cf7a gvfs: refactor loading the core.gvfs config value
22: 0330be2 = 27: 0c6482d send-pack: do not check for sha1 file when GVFS_MISSING_OK set
23: ffbb357 = 28: 47932ce cache-tree: remove use of strbuf_addf in update_one
24: e1f5ec2 ! 29: 83acfe7 gvfs: block unsupported commands when running in a GVFS repo
25: 0b76560 = 30: 240abce gvfs: allow overriding core.gvfs
26: 7b9670e = 31: 46d3fee BRANCHES.md: Add explanation of branches and using forks
27: 9ca2e5d = 32: 528127a Add virtual file system settings and hook proc
28: 6a01dec = 33: 396915d virtualfilesystem: don't run the virtual file system hook if the index has been redirected
29: 180f98e = 34: 57686c1 virtualfilesystem: fix bug with symlinks being ignored
30: b09e24e = 35: 5741181 virtualfilesystem: check if directory is included
31: d4f9adc = 36: 4dff1a8 vfs: fix case where directories not handled correctly
32: 9c83e33 = 37: e8d8827 backwards-compatibility: support the post-indexchanged hook
33: c1ac949 = 38: ea1ce87 gvfs: verify that the built-in FSMonitor is disabled
34: b5cd85b < -: ------------ merge-ort: ignore skip-worktree bit with virtual filesystem
35: 3ce006c ! 39: 2d007c6 status: add status serialization mechanism
36: 64e4ba5 = 40: 58434f7 Teach ahead-behind and serialized status to play nicely together
37: 9d1b66b = 41: 5e60d7a status: serialize to path
38: 457ac8f = 42: c8bd7a4 status: reject deserialize in V2 and conflicts
39: e97b379 = 43: 46ec0f6 status: fix rename reporting when using serialization cache
40: 0fbc45c = 44: 03aa602 serialize-status: serialize global and repo-local exclude file metadata
41: 52559f9 = 45: ed8c247 status: deserialization wait
42: 6c9e24f = 46: 5ff86c2 merge-recursive: avoid confusing logic in was_dirty()
43: b664fc5 = 47: 8da7a42 merge-recursive: add some defensive coding to was_dirty()
44: 4b135fb = 48: 0c4705d merge-recursive: teach was_dirty() about the virtualfilesystem
45: 0a6a8e4 = 49: 7334628 status: deserialize with -uno does not print correct hint
46: a605f42 = 50: 0e8b0ad wt-status-deserialize: fix crash when -v is used
47: af9746c = 51: a3eb4de fsmonitor: check CE_FSMONITOR_VALID in ce_uptodate
48: e51f0ba = 52: 8a929ea fsmonitor: add script for debugging and update script for tests
49: a364631 = 53: 0d1f6e8 status: disable deserialize when verbose output requested.
50: 7ef85d7 = 54: b409aaf t7524: add test for verbose status deserialzation
51: b0b3d04 = 55: 49948a4 deserialize-status: silently fallback if we cannot read cache file
52: 431f97c = 56: 32a4e87 gvfs:trace2:data: add trace2 tracing around read_object_process
53: ed366c6 = 57: 9293bbf gvfs:trace2:data: status deserialization information
54: d64cb33 = 58: e7d24b5 gvfs:trace2:data: status serialization
55: 092c22c = 59: 6d56c0c gvfs:trace2:data: add vfs stats
56: 8fd92a2 = 60: 62a42a4 trace2: refactor setting process starting time
57: be80116 = 61: 8e03410 trace2:gvfs:experiment: clear_ce_flags_1
58: 616e63e = 62: a047080 trace2:gvfs:experiment: report_tracking
59: 62c9575 = 63: 957f46b trace2:gvfs:experiment: read_cache: annotate thread usage in read-cache
60: 50d46b9 = 64: e182281 trace2:gvfs:experiment: read-cache: time read/write of cache-tree extension
61: f19721a = 65: efbce4b cache-tree: use
r
instead ofthe_repository
in Trace262: 7087898 = 66: 016a14c trace2:gvfs:experiment: add region to apply_virtualfilesystem()
63: 0f6523a = 67: b3e78be trace2:gvfs:experiment: add region around unpack_trees()
64: b246a42 = 68: b2aa9e0 trace2:gvfs:experiment: add region to cache_tree_fully_valid()
65: 9652bc6 = 69: 1059afc trace2:gvfs:experiment: add unpack_entry() counter to unpack_trees() and report_tracking()
66: bfdee90 = 70: 69a18e2 trace2:gvfs:experiment: increase default event depth for unpack-tree data
67: 9474f66 = 71: 09fa7ef trace2:gvfs:experiment: add data for check_updates() in unpack_trees()
68: 05eba7b = 72: 21a619e Trace2:gvfs:experiment: capture more 'tracking' details
69: c5c3ff5 = 73: 1b198f2 credential: set trace2_child_class for credential manager children
70: b7b80c6 = 74: 57d14b2 sub-process: do not borrow cmd pointer from caller
71: 9026ccd ! 75: d6cac4d sub-process: add subprocess_start_argv()
72: 4cfa048 = 76: 39a74a3 sha1-file: add function to update existing loose object cache
73: f8d9631 = 77: 1529f48 packfile: add install_packed_git_and_mru()
74: 4378254 = 78: e849dc2 index-pack: avoid immediate object fetch while parsing packfile
75: 60aecde = 79: 287ac47 gvfs-helper: create tool to fetch objects using the GVFS Protocol
76: 35f4f0e = 80: 350a99d gvfs-helper: fix race condition when creating loose object dirs
77: 1e43dde = 81: ec24566 sha1-file: create shared-cache directory if it doesn't exist
78: cc6476f = 82: 4c752d2 gvfs-helper: better handling of network errors
79: e4090e5 = 83: 8ddce84 gvfs-helper-client: properly update loose cache with fetched OID
80: ee5ea0d = 84: e2eea6c gvfs-helper: V2 robust retry and throttling
81: b878ad0 = 85: 022e16a gvfs-helper: expose gvfs/objects GET and POST semantics
82: 9d63d64 = 86: 7fc8af6 gvfs-helper: dramatically reduce progress noise
83: 1244391 = 87: 4605a7d gvfs-helper-client.h: define struct object_id
84: 32dc122 = 88: 592ba43 gvfs-helper: handle pack-file after single POST request
85: 761c9b6 = 89: f6c2784 test-gvfs-prococol, t5799: tests for gvfs-helper
86: d9ed18b = 90: e576970 gvfs-helper: move result-list construction into install functions
87: 735f5d1 = 91: ff6fa29 t5799: add support for POST to return either a loose object or packfile
88: d7be282 = 92: c562a11 t5799: cleanup wc-l and grep-c lines
89: 9c2c440 = 93: e2e8145 gvfs-helper: verify loose objects after write
90: a612a0f = 94: fb21132 t7599: create corrupt blob test
91: 2b499ce = 95: 1065f33 gvfs-helper: add prefetch support
92: cf506d5 = 96: f0f1acf gvfs-helper: add prefetch .keep file for last packfile
93: 32b0299 = 97: ac87c1a gvfs-helper: do one read in my_copy_fd_len_tail()
94: dbebe4a = 98: ce5b521 gvfs-helper: move content-type warning for prefetch packs
95: bff999f = 99: 256ecf2 fetch: use gvfs-helper prefetch under config
96: 6d86a19 = 100: 63c0a28 gvfs-helper: better support for concurrent packfile fetches
97: ac11a53 = 101: a707e73 remote-curl: do not call fetch-pack when using gvfs-helper
98: e2aaf16 = 102: 13c62d6 fetch: reprepare packs before checking connectivity
99: c5dbf6f = 103: 953cd07 gvfs-helper: retry when creating temp files
100: 542ae72 = 104: aecb17b sparse: avoid warnings about known cURL issues in gvfs-helper.c
101: 3579e13 = 105: 093c68c upload-pack: fix race condition in error messages
102: 7fb5061 = 106: e20c882 maintenance: care about gvfs.sharedCache config
103: acd912b = 107: 1490e0e unpack-trees:virtualfilesystem: Improve efficiency of clear_ce_flags
104: a5e818d = 108: 3352cf5 homebrew: add GitHub workflow to release Cask
105: 6c96ece = 109: 6780bbc Adding winget workflows
106: 3c6f113 = 110: aff7866 Add workflow for apt-get release
107: a44252e = 111: 3949b1f Disable the
monitor-components
workflow in msft-git108: fdbc226 = 112: 61068f0 release: create initial Windows installer build workflow
109: 0e0e157 = 113: a075bde release: add Mac OSX installer build
110: df11aa3 = 114: 0264267 release: build unsigned Ubuntu .deb package
111: fe6951a = 115: 3ff9d0c release: add signing step for .deb package
112: 4d9c0c1 = 116: 425e840 update-microsoft-git: create barebones builtin
113: 3fa6028 = 117: 1adcadb release: create draft GitHub release with packages & installers
114: 91137c6 = 118: c84e52f update-microsoft-git: Windows implementation
115: 970b183 = 119: 2398c30 release: continue pestering until user upgrades
116: 285c9dc = 120: a45e4c6 update-microsoft-git: use brew on macOS
117: 06e2f8d = 121: 8dcdb2e Makefile: allow specifying GIT_BUILT_FROM_COMMIT
118: 2e6196b = 122: f789608 .github: update ISSUE_TEMPLATE.md for microsoft/git
119: cd9d5ff = 123: 0538110 dist: archive HEAD instead of HEAD^{tree}
120: 33453f9 = 124: 66afeaa .github: update PULL_REQUEST_TEMPLATE.md
121: 4f994de = 125: cd5e3d2 release: include GIT_BUILT_FROM_COMMIT in MacOS build
124: 5805305 < -: ------------ scalar: enable built-in FSMonitor on
register
125: 8c5472f < -: ------------ scalar unregister: stop FSMonitor daemon
134: a306cc1 = 126: 94fdc64 Adjust README.md for microsoft/git
174: 07768fc = 127: fdbcb53 release: add installer validation
126: c40f530 = 128: bf45de7 git_config_set_multivar_in_file_gently(): add a lock timeout
127: 555890a ! 129: ff0dee2 scalar: set the config write-lock timeout to 150ms
128: d85aa29 = 130: 43c010b scalar: add docs from microsoft/scalar
129: 9e4017e = 131: 0d917ba scalar: allow installing the command
130: 06c3619 = 132: 98c9957 scalar: allow building and installing the documentation
131: a9e5ff9 = 133: e50bec0 git help: special-case
scalar
132: 7c8d105 = 134: 5d0618a scalar: implement the
help
subcommand133: 558699e ! 135: e2898b3 scalar: move it out of contrib/
135: 2308984 ! 136: be45bd5 scalar (Windows): use forward slashes as directory separators
136: 007d7af ! 137: 2d2de8f scalar: add retry logic to run_git()
137: 40cceaf = 138: 432eb90 scalar: support the
config
command for backwards compatibility138: f9e4940 = 139: 276743f scalar: implement a minimal JSON parser
139: 4b90ce8 ! 140: 149ccd2 scalar clone: support GVFS-enabled remote repositories
140: 85d4595 = 141: 941dc46 test-gvfs-protocol: also serve smart protocol
141: f529c3f = 142: 366a499 gvfs-helper: add the
endpoint
command142: ec0c194 = 143: 7eb0cc9 dir_inside_of(): handle directory separators correctly
143: bdd52d7 ! 144: a58a6b9 scalar: disable authentication in unattended mode
144: a605233 ! 145: 4117c35 scalar: do initialize
gvfs.sharedCache
145: 0bfc0eb ! 146: f9722c3 scalar diagnose: include shared cache info
146: 7747b09 = 147: 0794f78 scalar: only try GVFS protocol on https:// URLs
147: 849dd61 = 148: 366f932 scalar: verify that we can use a GVFS-enabled repository
148: ac2fa88 ! 149: 67e245a scalar: add the
cache-server
command149: 582a1aa = 150: b580f26 scalar: add a test toggle to skip accessing the vsts/info endpoint
150: d175f17 = 151: 0cb165c scalar: adjust documentation to the microsoft/git fork
151: 6b11af7 = 152: 86a52d5 scalar: enable untracked cache unconditionally
152: b632a5e = 153: 0bbe6df scalar: parse
clone --no-fetch-commits-and-trees
for backwards compatibility153: 8d433fd = 154: d1f22a3 scalar: put docs back where they are expected
154: 377405c ! 155: c41caf9 scalar diagnose: accommodate Scalar's Functional Tests
155: 5e70cf8 = 156: 7a92c7f ci: run Scalar's Functional Tests
156: 5baef4b ! 157: e24d5e5 scalar: upgrade to newest FSMonitor config setting
157: 1bd40eb ! 158: 190ee7b setup: add discover_git_directory_reason()
161: 26726f1 ! 159: 995f2ac scalar reconfigure: help users remove buggy repos
159: cab7dd6 = 160: cf75cc0 add/rm: allow adding sparse entries when virtual
162: 9bec239 = 161: a4e6e86 t7524: test no longer fails
163: 61c7ea9 ! 162: a40849a repo-settings: enable sparse index by default
164: 7f9b71d = 163: 2177d8f dir: add path_matches_cone_mode_pattern_list()
165: b2871a8 = 164: 7456efd diff(sparse-index): verify with partially-sparse
166: beabdb7 = 165: 3d38c50 p2000: explicitly turn off sparse index
167: 22c8f59 ! 166: ee124ed p2000: add new commands
168: 2028beb = 167: d9a9888 stash: expand testing for
git stash -u
170: 8c4c2ad = 168: 322aa50 sparse: add vfs-specific precautions
171: e1487fa = 169: 30aea28 t0001: drop memory-leak check
172: 7ea6add = 170: b6ac0cf maintenance: delete stale lock files
173: 1cd624d = 171: 72fa83f reset: fix mixed reset when using virtual filesystem
175: 2f75d8a < -: ------------ unpack-trees: fix sparse directory recursion check
The most relevant pieces are:
This made it upstream (in a fundamentally different shape) as 3f1917d.
Likewise this, as ec4c231.
And this made it upstream virtually unchanged, as 037f8ea.
The bulk of the range-diff is due to the
cmd_diagnose()
logic ofscalar.c
now having moved todiagnose.c
.