-
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
[DO NOT MERGE BUT PUSH INSTEAD] Rebase to v2.42.0 #596
[DO NOT MERGE BUT PUSH INSTEAD] Rebase to v2.42.0 #596
Conversation
a4ea2b9
to
81fe36a
Compare
@derrickstolee what do you think about upstreaming the following? |
81fe36a
to
48254d4
Compare
As "threatened", I just force-pushed a tree-same update. Here is... ... the range diff
Essentially a lot of squashing bug fixes and dropping the essentially-reverted I stopped at that point, leaving more cleanups for later (e.g. dropping the v1/v2 of the serialized |
I don't have a copy of this (and neither does GitHub). I haven't yet, but will combine this with the This retry logic feels like something we do just to make our functional tests run with fewer flaky failures, not actually something that is valuable for the product. My current feeling is that we should not upstream this right now. |
My apologies, this was a commit I rewrote multiple times during the rebasing. I meant 29bf38f |
Thanks! I sent the patch upstream. |
48254d4
to
4db6037
Compare
I force-pushed an update to -rc1. Range-diff relative to the -rc0 rebase
Nicely "boring". |
4db6037
to
3e4b052
Compare
Range-diff relative to the -rc1 rebase
The only notable aspect is that I integrated #597. |
@derrickstolee I did not ;-) Those changes are part of the squashes/clean-ups I mentioned earlier:
corresponds to 4c999ac and
in the same commit pair corresponds to 3981c02.
No need to apologize, this is par for the course. I wouldn't have wanted you to do it any other way, and I gladly picked up the changes and incorporated them manually. |
Thanks, @dscho. I was looking for commit names, not realizing that you had squashed them in an earlier version. |
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> Update for 2023-02-27: This feature was upstreamed as the index.skipHash config option. This resulted in some changes to the struct and some of the setup code. In particular, the config reading was moved to prepare_repo_settings(), so the core.gvfs bit check was moved there, too. Signed-off-by: Derrick Stolee <derrickstolee@github.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>
While performing a fetch with a virtual file system we know that there will be missing objects and we don't want to download them just because of the reachability of the commits. We also don't want to download a pack file with commits, trees, and blobs since these will be downloaded on demand. This flag will skip the first connectivity check and by returning zero will skip the upload pack. It will also skip the second connectivity check but continue to update the branches to the latest commit ids. 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>
Ensure all filters and EOL conversions are blocked when running under GVFS so that our projected file sizes will match the actual file size when it is hydrated on the local machine. Signed-off-by: Ben Peart <Ben.Peart@microsoft.com>
Suggested by Ben Peart. Signed-off-by: Johannes Schindelin <johasc@microsoft.com>
The idea is to allow blob objects to be missing from the local repository, and to load them lazily on demand. After discussing this idea on the mailing list, we will rename the feature to "lazy clone" and work more on this. Signed-off-by: Ben Peart <Ben.Peart@microsoft.com>
When we initially created background maintenance -- with its hourly, daily, and weekly schedules -- we considered the effects of all clients launching fetches to the server every hour on the hour. The worry of DDoSing server hosts was noted, but left as something we would consider for a future update. As background maintenance has gained more adoption over the past three years, our worries about DDoSing the big Git hosts has been unfounded. Those systems, especially those serving public repositories, are already resilient to thundering herds of much smaller scale. However, sometimes organizations spin up specific custom server infrastructure either in addition to or on top of their Git host. Some of these technologies are built for a different range of scale, and can hit concurrency limits sooner. Organizations with such custom infrastructures are more likely to recommend tools like `scalar` which furthers their adoption of background maintenance. To help solve for this, create get_random_minute() as a method to help Git select a random minute when creating schedules in the future. The integrations with this method do not yet exist, but will follow in future changes. To avoid multiple sources of randomness in the Git codebase, create a new helper function, git_rand(), that returns a random uint32_t. This is similar to how rand() returns a random nonnegative value, except it is based on csprng_bytes() which is cryptographic and will return values larger than RAND_MAX. One thing that is important for testability is that we notice when we are under a test scenario and return a predictable result. The schedules themselves are not checked for this value, but at least one launchctl test checks that we do not unnecessarily reboot the schedule if it has not changed from a previous version. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
The get_random_minute() method was created to allow maintenance schedules to be fixed to a random minute of the hour. This randomness is only intended to spread out the load from a number of clients, but each client should have an hour between each maintenance cycle. Use get_random_minute() when constructing the schedules for launchctl. The format already includes a 'Minute' key which is modified from 0 to the random minute. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
The get_random_minute() method was created to allow maintenance schedules to be fixed to a random minute of the hour. This randomness is only intended to spread out the load from a number of clients, but each client should have an hour between each maintenance cycle. Add this random minute to the Windows scheduler integration. We need only to modify the minute value for the 'StartBoundary' tag across the three schedules. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
The get_random_minute() method was created to allow maintenance schedules to be fixed to a random minute of the hour. This randomness is only intended to spread out the load from a number of clients, but each client should have an hour between each maintenance cycle. Add this random minute to the cron integration. The cron schedule specification starts with a minute indicator, which was previously inserted as the "0" string but now takes the given minute as an integer parameter. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
The systemd_timer_write_unit_templates() method writes a single template that is then used to start the hourly, daily, and weekly schedules with systemd. However, in order to schedule systemd maintenance on a given minute, these templates need to be replaced with specific schedules for each of these jobs. Before modifying the schedules, move the writing method above the systemd_timer_enable_unit() method, so we can write a specific schedule for each unit. The diff is computed smaller by showing systemd_timer_enable_unit() and systemd_timer_delete_units() move instead of systemd_timer_write_unit_templates() and systemd_timer_delete_unit_templates(). Signed-off-by: Derrick Stolee <derrickstolee@github.com>
…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.
The get_random_minute() method was created to allow maintenance schedules to be fixed to a random minute of the hour. This randomness is only intended to spread out the load from a number of clients, but each client should have an hour between each maintenance cycle. Add this random minute to the systemd integration. This integration is more complicated than similar changes for other schedulers because of a neat trick that systemd allows: templating. The previous implementation generated two template files with names of the form 'git-maintenance@.(timer|service)'. The '.timer' or '.service' indicates that this is a template that is picked up when we later specify '...@<schedule>.timer' or '...@<schedule>.service'. The '<schedule>' string is then used to insert into the template both the 'OnCalendar' schedule setting and the '--schedule' parameter of the 'git maintenance run' command. In order to set these schedules to a given minute, we can no longer use the 'hourly', 'daily', or 'weekly' strings for '<schedule>' and instead need to abandon the template model for the .timer files. We can still use templates for the .service files. For this reason, we split these writes into two methods. Modify the template with a custom schedule in the 'OnCalendar' setting. This schedule has some interesting differences from cron-like patterns, but is relatively easy to figure out from context. The one that might be confusing is that '*-*-*' is a date-based pattern, but this must be omitted when using 'Mon' to signal that we care about the day of the week. Monday is used since that matches the day used for the 'weekly' schedule used previously. Now that the timer files are not templates, we might want to abandon the '@' symbol in the file names. However, this would cause users with existing schedules to get two competing schedules due to different names. The work to remove the old schedule name is one thing that we can avoid by keeping the '@' symbol in our unit names. Since we are locked into this name, it makes sense that we keep the template model for the .service files. The rest of the change involves making sure we are writing these .timer and .service files before initializing the schedule with 'systemctl' and deleting the files when we are done. Some changes are also made to share the random minute along with a single computation of the execution path of the current Git executable. In addition, older Git versions may have written a 'git-maintenance@.timer' template file. Be sure to remove this when successfully enabling maintenance (or disabling maintenance). Signed-off-by: Derrick Stolee <derrickstolee@github.com>
…and git worktree after clones These are two highly-requested items from an internal team considering a move to Scalar using Azure Repos. 1. Remove the requirement that we create a `src` directory at clone time. 2. Allow `git worktree` even when using the GVFS protocol. These are not difficult to implement. The `--no-src` option could even be submitted upstream (though the commit will need to drop one bit about an interaction with the local cache path).
The 'git maintenance run' command prevents concurrent runs in the same repository using a 'maintenance.lock' file. However, when using systemd the hourly maintenance runs the same time as the daily and weekly runs. (Similarly, daily maintenance runs at the same time as weekly maintenance.) These competing commands result in some maintenance not actually being run. This overlap was something we could not fix until we made the recent change to not use the builting 'hourly', 'daily', and 'weekly' schedules in systemd. We can adjust the schedules such that: 1. Hourly runs avoid the 0th hour. 2. Daily runs avoid Monday. This will keep maintenance runs from colliding when using systemd. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
…-and-fix-built-in-fsmonitor Fix the built-in FSMonitor, and run Scalar's Functional Tests as part of the automated builds
When running 'git maintenance start', the current pattern is to configure global config settings to enable maintenance on the current repository and set 'maintenance.auto' to false and _then_ to set up the schedule with the system scheduler. This has a problematic error condition: if the scheduler fails to initialize, the repository still will not use automatic maintenance due to the 'maintenance.auto' setting. Fix this gap by swapping the order of operations. If Git fails to initialize maintenance, then the config changes should never happen. Reported-by: Phillip Wood <phillip.wood123@gmail.com> Signed-off-by: Derrick Stolee <derrickstolee@github.com>
This is random stuff that probably all got upstream in the meantime.
* [x] This is an early version of work already under review upstream. See gitgitgadget#1567 for the version submitted upstream. This is an early version for the `microsoft/git` fork so we could potentially include it in a release to our Microsoft partners. Upgrading to a version with these changes may help with some of the auth problems plaguing GVFS Cache Servers. (It's not a long-term fix, but would avoid having fingers pointed in this direction in the future.) At least on Windows, we should re-run `git maintenance start` as part of `scalar reconfigure` during the installer. On other platforms, we will need to rely on users slowly rotating through their local repositories. > This PR is a recreation of git-for-windows#593 now that the upstream change required rebasing to resolve header conflicts.
When scripts or background maintenance wish to perform HTTP(S) requests, there is a risk that our stored credentials might be invalid. At the moment, this causes the credential helper to ping the user and block the process. Even if the credential helper does not ping the user, Git falls back to the 'askpass' method, which includes a direct ping to the user via the terminal. Even setting the 'core.askPass' config as something like 'echo' will causes Git to fallback to a terminal prompt. It uses git_terminal_prompt(), which finds the terminal from the environment and ignores whether stdin has been redirected. This can also block the process awaiting input. Create a new config option to prevent user interaction, favoring a failure to a blocked process. The chosen name, 'credential.interactive', is taken from the config option used by Git Credential Manager to already avoid user interactivity, so there is already one credential helper that integrates with this option. However, older versions of Git Credential Manager also accepted other string values, including 'auto', 'never', and 'always'. The modern use is to use a boolean value, but we should still be careful that some users could have these non-booleans. Further, we should respect 'never' the same as 'false'. This is respected by the implementation and test, but not mentioned in the documentation. The implementation for the Git interactions takes place within credential_getpass(). The method prototype is modified to return an 'int' instead of 'void'. This allows us to detect that no attempt was made to fill the given credential, changing the single caller slightly. Also, a new trace2 region is added around the interactive portion of the credential request. This provides a way to measure the amount of time spent in that region for commands that _are_ interactive. It also makes a conventient way to test that the config option works with 'test_region'. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
At the moment, some background jobs are getting blocked on credentials during the 'prefetch' task. This leads to other tasks, such as incremental repacks, getting blocked. Further, if a user manages to fix their credentials, then they still need to cancel the background process before their background maintenance can continue working. Update the background schedules for our four scheduler integrations to include these config options via '-c' options: * 'credential.interactive=false' will stop Git and some credential helpers from prompting in the UI (assuming the '-c' parameters are carried through and respected by GCM). * 'core.askPass=true' will replace the text fallback for a username and password into the 'true' command, which will return a success in its exit code, but Git will treat the empty string returned as an invalid password and move on. We can do some testing that the credentials are passed, at least in the systemd case due to writing the service files. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
The 'scalar reconfigure' command is intended to update registered repos with the latest settings available. However, up to now we were not reregistering the repos with background maintenance. In particular, this meant that the background maintenance schedule would not be updated if there are improvements between versions. Be sure to register repos for maintenance during the reconfigure step. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
@dscho: I reworked this branch in my fork to include #598. Please fetch Range-diff from your branch to mineI used 1: beb3ce9766 = 1: beb3ce9766 reset --stdin: trim carriage return from the paths
2: 83d4652131 = 2: 83d4652131 gvfs: start by adding the -gvfs suffix to the version
3: 6963153658 = 3: 6963153658 gvfs: ensure that the version is based on a GVFS tag
4: 7fa2270eb9 = 4: 7fa2270eb9 gvfs: add a GVFS-specific header file
5: b9b41d5dd1 = 5: b9b41d5dd1 gvfs: add the core.gvfs config setting
6: 85c245dd53 = 6: 85c245dd53 gvfs: add the feature to skip writing the index' SHA-1
7: b75bb69a10 = 7: b75bb69a10 gvfs: add the feature that blobs may be missing
8: 5defb61569 = 8: 5defb61569 gvfs: prevent files to be deleted outside the sparse checkout
9: 2989380f4f = 9: 2989380f4f gvfs: optionally skip reachability checks/upload pack during fetch
10: fd78c60dd6 = 10: fd78c60dd6 gvfs: ensure all filters and EOL conversions are blocked
11: 6be8f173dc = 11: 6be8f173dc gvfs: allow "virtualizing" objects
12: ba8ff26802 = 12: ba8ff26802 Hydrate missing loose objects in check_and_freshen()
13: a05336f9cd = 13: a05336f9cd sha1_file: when writing objects, skip the read_object_hook
14: 7027220f63 = 14: 7027220f63 gvfs: add global command pre and post hook procs
15: a04260e057 = 15: a04260e057 t0400: verify that the hook is called correctly from a subdirectory
16: 1a14559a8e = 16: 1a14559a8e Pass PID of git process to hooks.
17: 638cebdd38 = 17: 638cebdd38 pre-command: always respect core.hooksPath
18: ab7419da3b = 18: ab7419da3b sparse-checkout: update files with a modify/delete conflict
19: fc24c9819f = 19: fc24c9819f sparse-checkout: avoid writing entries with the skip-worktree bit
20: 99f85398bd = 20: 99f85398bd Do not remove files outside the sparse-checkout
21: b1e77b31f9 = 21: b1e77b31f9 gvfs: refactor loading the core.gvfs config value
22: 789bfe2bab = 22: 789bfe2bab send-pack: do not check for sha1 file when GVFS_MISSING_OK set
23: 7abe226ad4 = 23: 7abe226ad4 cache-tree: remove use of strbuf_addf in update_one
24: f4489d543c = 24: f4489d543c gvfs: block unsupported commands when running in a GVFS repo
25: b2db4774b7 = 25: b2db4774b7 worktree: allow in Scalar repositories
26: 6045bccfd9 = 26: 6045bccfd9 gvfs: allow overriding core.gvfs
27: 6918eec6a1 = 27: 6918eec6a1 BRANCHES.md: Add explanation of branches and using forks
28: 6745c45711 = 28: 6745c45711 Add virtual file system settings and hook proc
29: 523c9ca40b = 29: 523c9ca40b virtualfilesystem: don't run the virtual file system hook if the index has been redirected
30: 8e8926786b = 30: 8e8926786b virtualfilesystem: check if directory is included
31: d4980f2499 = 31: d4980f2499 backwards-compatibility: support the post-indexchanged hook
32: d00c4ca757 = 32: d00c4ca757 gvfs: verify that the built-in FSMonitor is disabled
33: 9c27a8ee44 = 33: 9c27a8ee44 status: add status serialization mechanism
34: 01f92dcb48 = 34: 01f92dcb48 Teach ahead-behind and serialized status to play nicely together
35: 7256d4f674 = 35: 7256d4f674 status: serialize to path
36: 22e9744c4f = 36: 22e9744c4f status: reject deserialize in V2 and conflicts
37: af61fbc45c = 37: af61fbc45c serialize-status: serialize global and repo-local exclude file metadata
38: 52eb244ea8 = 38: 52eb244ea8 status: deserialization wait
39: f51c96d3e1 = 39: f51c96d3e1 merge-recursive: avoid confusing logic in was_dirty()
40: 28388fb0cf = 40: 28388fb0cf merge-recursive: add some defensive coding to was_dirty()
41: 5f499d95e3 = 41: 5f499d95e3 merge-recursive: teach was_dirty() about the virtualfilesystem
42: 09f8e30014 = 42: 09f8e30014 status: deserialize with -uno does not print correct hint
43: 82ad4b724b = 43: 82ad4b724b fsmonitor: check CE_FSMONITOR_VALID in ce_uptodate
44: 0e205d70ff = 44: 0e205d70ff fsmonitor: add script for debugging and update script for tests
45: 991de58b7c = 45: 991de58b7c status: disable deserialize when verbose output requested.
46: e0f79bad32 = 46: e0f79bad32 t7524: add test for verbose status deserialzation
47: 14452b7fb9 = 47: 14452b7fb9 deserialize-status: silently fallback if we cannot read cache file
48: 35e920af21 = 48: 35e920af21 gvfs:trace2:data: add trace2 tracing around read_object_process
49: 7d872c39e7 = 49: 7d872c39e7 gvfs:trace2:data: status deserialization information
50: 680a5dda82 = 50: 680a5dda82 gvfs:trace2:data: status serialization
51: 56b57b4b46 = 51: 56b57b4b46 gvfs:trace2:data: add vfs stats
52: 3b94725dc4 = 52: 3b94725dc4 trace2: refactor setting process starting time
53: f01198af7a = 53: f01198af7a trace2:gvfs:experiment: clear_ce_flags_1
54: d5ab32cb5f = 54: d5ab32cb5f trace2:gvfs:experiment: report_tracking
55: 7384393735 = 55: 7384393735 trace2:gvfs:experiment: read_cache: annotate thread usage in read-cache
56: 091f2bfcae = 56: 091f2bfcae trace2:gvfs:experiment: read-cache: time read/write of cache-tree extension
57: 2ba30a8368 = 57: 2ba30a8368 trace2:gvfs:experiment: add region to apply_virtualfilesystem()
58: dbe4182aab = 58: dbe4182aab trace2:gvfs:experiment: add region around unpack_trees()
59: 3dead050d3 = 59: 3dead050d3 trace2:gvfs:experiment: add region to cache_tree_fully_valid()
60: d746e1d183 = 60: d746e1d183 trace2:gvfs:experiment: add unpack_entry() counter to unpack_trees() and report_tracking()
61: fce6f117bf = 61: fce6f117bf trace2:gvfs:experiment: increase default event depth for unpack-tree data
62: e460ad4a4c = 62: e460ad4a4c trace2:gvfs:experiment: add data for check_updates() in unpack_trees()
63: 68d7101b6b = 63: 68d7101b6b Trace2:gvfs:experiment: capture more 'tracking' details
64: a617e625a6 = 64: a617e625a6 credential: set trace2_child_class for credential manager children
65: dcf48b2103 = 65: dcf48b2103 sub-process: do not borrow cmd pointer from caller
66: cbc202bf27 = 66: cbc202bf27 sub-process: add subprocess_start_argv()
67: f872f9dbb2 = 67: f872f9dbb2 sha1-file: add function to update existing loose object cache
68: 434847cfbc = 68: 434847cfbc packfile: add install_packed_git_and_mru()
69: b360b3297a = 69: b360b3297a index-pack: avoid immediate object fetch while parsing packfile
70: 5579a8023b = 70: 5579a8023b gvfs-helper: create tool to fetch objects using the GVFS Protocol
71: ac4a124ee3 = 71: ac4a124ee3 sha1-file: create shared-cache directory if it doesn't exist
72: 6619a85b7c = 72: 6619a85b7c gvfs-helper: better handling of network errors
73: 311af316a8 = 73: 311af316a8 gvfs-helper-client: properly update loose cache with fetched OID
74: 8c1a1c4f68 = 74: 8c1a1c4f68 gvfs-helper: V2 robust retry and throttling
75: 43442ca9c2 = 75: 43442ca9c2 gvfs-helper: expose gvfs/objects GET and POST semantics
76: 0d987392e3 = 76: 0d987392e3 gvfs-helper: dramatically reduce progress noise
77: d8a4d89cc5 = 77: d8a4d89cc5 gvfs-helper-client.h: define struct object_id
78: 9175db63d1 = 78: 9175db63d1 gvfs-helper: handle pack-file after single POST request
79: f89f72bffd = 79: f89f72bffd test-gvfs-prococol, t5799: tests for gvfs-helper
80: 04a00fc112 = 80: 04a00fc112 gvfs-helper: move result-list construction into install functions
81: b8d9a6880d = 81: b8d9a6880d t5799: add support for POST to return either a loose object or packfile
82: d66125701d = 82: d66125701d t5799: cleanup wc-l and grep-c lines
83: 4c63e73cae = 83: 4c63e73cae gvfs-helper: verify loose objects after write
84: d765e392e3 = 84: d765e392e3 t7599: create corrupt blob test
85: 39a8eb26c7 = 85: 39a8eb26c7 gvfs-helper: add prefetch support
86: 9242228937 = 86: 9242228937 gvfs-helper: add prefetch .keep file for last packfile
87: 7ed9e35c80 = 87: 7ed9e35c80 gvfs-helper: do one read in my_copy_fd_len_tail()
88: 4f4b450ca2 = 88: 4f4b450ca2 gvfs-helper: move content-type warning for prefetch packs
89: 3c4c21981c = 89: 3c4c21981c fetch: use gvfs-helper prefetch under config
90: ae0eb9a412 = 90: ae0eb9a412 gvfs-helper: better support for concurrent packfile fetches
91: 2b1e1c1f47 = 91: 2b1e1c1f47 remote-curl: do not call fetch-pack when using gvfs-helper
92: e7f908222e = 92: e7f908222e fetch: reprepare packs before checking connectivity
93: 21f9a98bac = 93: 21f9a98bac gvfs-helper: retry when creating temp files
94: 98386f1457 = 94: 98386f1457 sparse: avoid warnings about known cURL issues in gvfs-helper.c
95: 2edc14cfff = 95: 2edc14cfff gvfs-helper: add --max-retries to prefetch verb
96: 38ff92e754 = 96: 38ff92e754 t5799: add tests to detect corrupt pack/idx files in prefetch
97: 9ee1e4ace9 = 97: 9ee1e4ace9 upload-pack: fix race condition in error messages
98: 273466db5b = 98: 273466db5b maintenance: care about gvfs.sharedCache config
99: cae50264bf = 99: cae50264bf unpack-trees:virtualfilesystem: Improve efficiency of clear_ce_flags
100: 60867957f8 = 100: 60867957f8 homebrew: add GitHub workflow to release Cask
101: ecd2e757b5 = 101: ecd2e757b5 Adding winget workflows
102: 5a63114561 = 102: 5a63114561 gvfs-helper: ignore .idx files in prefetch multi-part responses
103: 38698255c6 = 103: 38698255c6 Disable the `monitor-components` workflow in msft-git
104: 44ef83ba6c = 104: 44ef83ba6c .github: enable windows builds on microsoft fork
105: cfed047356 = 105: cfed047356 release: create initial Windows installer build workflow
106: 7563c50ea2 = 106: 7563c50ea2 release: add Mac OSX installer build
107: 6dc4e872ef = 107: 6dc4e872ef release: build unsigned Ubuntu .deb package
108: 2b9e0f6073 = 108: 2b9e0f6073 release: add signing step for .deb package
109: 644384fad8 = 109: 644384fad8 release: create draft GitHub release with packages & installers
110: b373c23fc3 = 110: b373c23fc3 release: continue pestering until user upgrades
111: 166decdfbb = 111: 166decdfbb Makefile: allow specifying GIT_BUILT_FROM_COMMIT
112: fea717b9a7 = 112: fea717b9a7 dist: archive HEAD instead of HEAD^{tree}
113: be41ec0bc2 = 113: be41ec0bc2 update-microsoft-git: create barebones builtin
114: 3eb9a0afc0 = 114: 3eb9a0afc0 release: include GIT_BUILT_FROM_COMMIT in MacOS build
115: 8ba7557023 = 115: 8ba7557023 update-microsoft-git: Windows implementation
116: fae34368b4 = 116: fae34368b4 release: add installer validation
117: ddba2fa64a = 117: ddba2fa64a update-microsoft-git: use brew on macOS
118: 82e9672d19 = 118: 82e9672d19 .github: update ISSUE_TEMPLATE.md for microsoft/git
119: 8c64722c67 = 119: 8c64722c67 .github: update PULL_REQUEST_TEMPLATE.md
120: 747ad2cb59 = 120: 747ad2cb59 git_config_set_multivar_in_file_gently(): add a lock timeout
121: b54bd15913 = 121: b54bd15913 Adjust README.md for microsoft/git
122: 6682f125c4 = 122: 6682f125c4 scalar: set the config write-lock timeout to 150ms
123: ae4a077e5e = 123: ae4a077e5e scalar: add docs from microsoft/scalar
124: 1498a835eb = 124: 1498a835eb scalar (Windows): use forward slashes as directory separators
125: d98431c3de = 125: d98431c3de scalar: add retry logic to run_git()
126: 5ed4466827 = 126: 5ed4466827 scalar: support the `config` command for backwards compatibility
127: d4b21330f6 = 127: d4b21330f6 scalar: implement a minimal JSON parser
128: e7c0563082 = 128: e7c0563082 scalar clone: support GVFS-enabled remote repositories
129: 11adbf7d31 = 129: 11adbf7d31 test-gvfs-protocol: also serve smart protocol
130: b98daccaeb = 130: b98daccaeb gvfs-helper: add the `endpoint` command
131: 1a61a8e594 = 131: 1a61a8e594 dir_inside_of(): handle directory separators correctly
132: 85d9478c0c = 132: 85d9478c0c scalar: disable authentication in unattended mode
150: c9c7b341ad = 133: c9c7b341ad sparse-checkout: add config to disable deleting dirs
151: bedddbb0b6 = 134: bedddbb0b6 add/rm: allow adding sparse entries when virtual
152: 45e72a7f68 = 135: 45e72a7f68 diff: ignore sparse paths in diffstat
153: b584ffdc51 = 136: b584ffdc51 repo-settings: enable sparse index by default
154: 41b507ad4e = 137: 41b507ad4e diff(sparse-index): verify with partially-sparse
155: 9e019261ba = 138: 9e019261ba stash: expand testing for `git stash -u`
156: d99a8a0c20 = 139: d99a8a0c20 sequencer: avoid progress when stderr is redirected
157: 30b36a61a4 = 140: 30b36a61a4 sparse: add vfs-specific precautions Here is a squashed fixup: 133: 616f3e60e6 ! 141: a39b9ec8bf scalar: do initialize `gvfs.sharedCache`
@@ scalar.c: int cmd_main(int argc, const char **argv)
+ if (is_unattended()) {
+ setenv("GIT_ASKPASS", "", 0);
+ setenv("GIT_TERMINAL_PROMPT", "false", 0);
-+ git_config_push_parameter("credential.interactive=never");
++ git_config_push_parameter("credential.interactive=false");
+ }
+
while (argc > 1 && *argv[1] == '-') { 134: 6017b692d1 = 142: d1ba0f9558 scalar diagnose: include shared cache info
135: f637e38d73 = 143: 965a390676 scalar: only try GVFS protocol on https:// URLs
159: 0bc3512d50 = 144: 0bb7faee70 reset: fix mixed reset when using virtual filesystem Another fixup: 136: b5322558df ! 145: ad14a2eabd scalar: verify that we can use a GVFS-enabled repository
@@ t/t9210-scalar.sh: test_expect_success UNZIP 'scalar diagnose' '
+test_expect_success '`scalar clone` with GVFS-enabled server' '
+ : the fake cache server requires fake authentication &&
+ git config --global core.askPass true &&
-+ scalar clone --single-branch -- http://$HOST_PORT/ using-gvfs &&
++
++ # We must set credential.interactive=true to bypass a setting
++ # in "scalar clone" that disables interactive credentials during
++ # an unattended command.
++ scalar -c credential.interactive=true clone --single-branch -- http://$HOST_PORT/ using-gvfs &&
+
+ : verify that the shared cache has been configured &&
+ cache_key="url_$(printf "%s" http://$HOST_PORT/ | 137: fd62089141 = 146: 7378a39b7e scalar: add the `cache-server` command
138: ba56d16efd = 147: 25aa160807 scalar: add a test toggle to skip accessing the vsts/info endpoint
139: 9ef15d1e7d = 148: 84ce51283a scalar: adjust documentation to the microsoft/git fork
140: a561100885 = 149: f9056381b0 scalar: enable untracked cache unconditionally
141: 7103d24d79 = 150: ad15733363 scalar: parse `clone --no-fetch-commits-and-trees` for backwards compatibility
142: df1213a047 = 151: 7efae3ffd1 scalar diagnose: accommodate Scalar's Functional Tests
143: c4ebeeb037 = 152: 0ca292a55b ci: run Scalar's Functional Tests
144: 0717e2feaf = 153: 779915ca8c scalar: upgrade to newest FSMonitor config setting
145: c21836ddaf = 154: cfa61bddec setup: add discover_git_directory_reason()
146: dd1052c0bc = 155: 45ea3356f1 scalar reconfigure: help users remove buggy repos
147: 80a122ff87 = 156: 5aeee2f3a4 abspath: make strip_last_path_component() global
148: f7bc4a83d5 = 157: 6ccab79202 scalar: .scalarCache should live above enlistment
149: 41b74c3c8a = 158: 679f0de51b scalar: add --no-src option The revert squashed in: 158: 7f0da72806 < -: ---------- maintenance: delete stale lock files 160: fd965237b8 = 159: 003438d684 maintenance: add get_random_minute()
161: 7cd3ed4688 = 160: a0bfea8490 maintenance: use random minute in launchctl scheduler
162: ee50aac575 = 161: b6aec3eb6f maintenance: use random minute in Windows scheduler
163: 3ce53fe21e = 162: 5ef6e387d9 maintenance: use random minute in cron scheduler
164: eececdfd2f = 163: c66dfb2a9d maintenance: swap method locations
165: 958784c8fa = 164: cf2cb00b20 maintenance: use random minute in systemd scheduler
166: d3e20bca8c = 165: 3bf089b486 maintenance: fix systemd schedule overlaps
167: 639c5f1924 = 166: 6d15915381 maintenance: update schedule before config The three new commits: -: ---------- > 167: 22acd557cd credential: add new interactive config option
-: ---------- > 168: 384c80e119 maintenance: add custom config to background jobs
-: ---------- > 169: c68e5fb7df scalar: configure maintenance during 'reconfigure' |
37ed982
to
c68e5fb
Compare
@derrickstolee thank you, I (force-)pushed it verbatim! |
Range-diff relative to vfs-2.41.0.3
1: b7d4bc6 = 1: be80c70 reset --stdin: trim carriage return from the paths
2: b1ad077 ! 2: 018d58c gvfs: start by adding the -gvfs suffix to the version
3: 03f9ac9 = 3: 147ddd8 gvfs: ensure that the version is based on a GVFS tag
4: 6f092a8 = 4: 514873d gvfs: add a GVFS-specific header file
5: 6420fd9 ! 5: 562428f gvfs: add the core.gvfs config setting
6: 854652c ! 6: 0d6a6e7 gvfs: add the feature to skip writing the index' SHA-1
7: a9b99d3 ! 7: bf82f65 gvfs: add the feature that blobs may be missing
8: 68851a7 ! 8: 1981410 gvfs: prevent files to be deleted outside the sparse checkout
9: d6b7b96 ! 9: 3519fae gvfs: optionally skip reachability checks/upload pack during fetch
10: c103076 ! 10: 229274a gvfs: ensure all filters and EOL conversions are blocked
11: 5c1fb20 ! 11: 18db714 gvfs: allow "virtualizing" objects
12: 260d6a0 ! 12: cc42981 Hydrate missing loose objects in check_and_freshen()
13: 790086d = 13: 0456a8a sha1_file: when writing objects, skip the read_object_hook
124: d098c27 = 14: 7bfa5bd git_config_set_multivar_in_file_gently(): add a lock timeout
125: 888e8fc = 15: 6741209 scalar: set the config write-lock timeout to 150ms
126: 9d4874a = 16: eee5cfb scalar: add docs from microsoft/scalar
127: bf5ab8d = 17: fce069d scalar (Windows): use forward slashes as directory separators
128: 357ebfa = 18: d597758 scalar: add retry logic to run_git()
129: 24a6632 = 19: 6884840 scalar: support the
config
command for backwards compatibility154: 5fb0643 = 20: 009f63f sparse-checkout: add config to disable deleting dirs
155: 1333306 = 21: 53d2460 diff: ignore sparse paths in diffstat
159: 5b0edda = 22: 1915faf sequencer: avoid progress when stderr is redirected
14: 399c4a6 ! 23: 18b98a1 gvfs: add global command pre and post hook procs
15: 88d4687 = 24: 8cad13e t0400: verify that the hook is called correctly from a subdirectory
16: 281fa4f = 25: d0029a3 Pass PID of git process to hooks.
17: 0b4a671 = 26: e81e968 pre-command: always respect core.hooksPath
18: 032b0b4 = 27: 4528d3a sparse-checkout: update files with a modify/delete conflict
19: 9a45de8 = 28: 31d1fc8 sparse-checkout: avoid writing entries with the skip-worktree bit
20: 91bbdc4 = 29: d3de4b1 Do not remove files outside the sparse-checkout
21: 7501847 ! 30: 0a3896d gvfs: refactor loading the core.gvfs config value
22: cc0227f ! 31: 4d5ba02 send-pack: do not check for sha1 file when GVFS_MISSING_OK set
23: cc6dd44 = 32: f2adb2b cache-tree: remove use of strbuf_addf in update_one
24: 3078d8c ! 33: 0ca561f gvfs: block unsupported commands when running in a GVFS repo
25: 46303ad ! 34: 07e63ff worktree: allow in Scalar repositories
26: 2c3b190 ! 35: c4a1090 gvfs: allow overriding core.gvfs
27: 8219174 = 36: a1edc39 BRANCHES.md: Add explanation of branches and using forks
28: 2cff5e9 ! 37: 36cb486 Add virtual file system settings and hook proc
29: 5148836 = 38: 8042372 virtualfilesystem: don't run the virtual file system hook if the index has been redirected
30: 6e313e0 = 39: 1735457 virtualfilesystem: fix bug with symlinks being ignored
31: ebe9464 = 40: d11ca3a virtualfilesystem: check if directory is included
32: 11fb74f = 41: 2d2068b vfs: fix case where directories not handled correctly
33: 01e785b = 42: b3edc09 backwards-compatibility: support the post-indexchanged hook
34: e63dd9e = 43: 888412f gvfs: verify that the built-in FSMonitor is disabled
35: 6668a14 ! 44: af7e062 status: add status serialization mechanism
36: 1765859 = 45: 8f6d6fa Teach ahead-behind and serialized status to play nicely together
37: e421b5c = 46: 78f398f status: serialize to path
38: bac50c5 = 47: dd0b7aa status: reject deserialize in V2 and conflicts
39: 98d6e0c = 48: 9e7d3ad status: fix rename reporting when using serialization cache
40: 10213b4 ! 49: 77244ef serialize-status: serialize global and repo-local exclude file metadata
41: 58e3047 ! 50: 1223036 status: deserialization wait
42: 8e0b51f = 51: 2d073bf merge-recursive: avoid confusing logic in was_dirty()
43: 0b50bb8 = 52: 04cb50e merge-recursive: add some defensive coding to was_dirty()
44: ab8b532 ! 53: 34670c5 merge-recursive: teach was_dirty() about the virtualfilesystem
45: ec2cef5 = 54: 729dca6 status: deserialize with -uno does not print correct hint
46: a1081b4 = 55: 710c2ba wt-status-deserialize: fix crash when -v is used
47: 8b5596c ! 56: 48f42fb fsmonitor: check CE_FSMONITOR_VALID in ce_uptodate
48: 698f1b2 = 57: e293532 fsmonitor: add script for debugging and update script for tests
49: 02652b2 = 58: 85f217e status: disable deserialize when verbose output requested.
50: 4b16533 = 59: addf61a t7524: add test for verbose status deserialzation
51: 7cd5356 = 60: f3c28b9 deserialize-status: silently fallback if we cannot read cache file
52: 86c7169 ! 61: 7fe52a0 gvfs:trace2:data: add trace2 tracing around read_object_process
53: 87422f2 ! 62: 3b4f859 gvfs:trace2:data: status deserialization information
54: b25228c ! 63: 8a6a57f gvfs:trace2:data: status serialization
55: ca92198 ! 64: 8d8a0df gvfs:trace2:data: add vfs stats
56: 6d188d2 = 65: e02707a trace2: refactor setting process starting time
57: b8d46f5 = 66: 4c104d2 trace2:gvfs:experiment: clear_ce_flags_1
58: e006462 = 67: 46d3ebe trace2:gvfs:experiment: report_tracking
59: b319052 = 68: 318d6a8 trace2:gvfs:experiment: read_cache: annotate thread usage in read-cache
60: 1208124 = 69: be8ceb9 trace2:gvfs:experiment: read-cache: time read/write of cache-tree extension
61: 1748ffe = 70: 4970bab trace2:gvfs:experiment: add region to apply_virtualfilesystem()
62: 567aa5f = 71: 01a5ecf trace2:gvfs:experiment: add region around unpack_trees()
63: 3fe6196 = 72: 6841e43 trace2:gvfs:experiment: add region to cache_tree_fully_valid()
64: bf3b310 ! 73: 4bb5da6 trace2:gvfs:experiment: add unpack_entry() counter to unpack_trees() and report_tracking()
65: 27525de = 74: 38dd549 trace2:gvfs:experiment: increase default event depth for unpack-tree data
66: 81e9e7e = 75: 0d03322 trace2:gvfs:experiment: add data for check_updates() in unpack_trees()
67: 1d51959 = 76: 396bba5 Trace2:gvfs:experiment: capture more 'tracking' details
68: 6361ef1 = 77: 3f3afc0 credential: set trace2_child_class for credential manager children
69: a372c15 = 78: 9794732 sub-process: do not borrow cmd pointer from caller
70: 835d085 = 79: 1527081 sub-process: add subprocess_start_argv()
71: 3e01a1b ! 80: e6289f3 sha1-file: add function to update existing loose object cache
72: eceef97 = 81: dc3e62b packfile: add install_packed_git_and_mru()
73: 99d876a = 82: 6f52504 index-pack: avoid immediate object fetch while parsing packfile
74: 138169e ! 83: 3ecfd05 gvfs-helper: create tool to fetch objects using the GVFS Protocol
75: 8111c20 = 84: c2a077d gvfs-helper: fix race condition when creating loose object dirs
76: f58c7dc = 85: f706a93 sha1-file: create shared-cache directory if it doesn't exist
77: a66799e = 86: 743dbba gvfs-helper: better handling of network errors
78: 3039d07 = 87: 8c2a9ae gvfs-helper-client: properly update loose cache with fetched OID
79: 22a1f06 = 88: 42c34ee gvfs-helper: V2 robust retry and throttling
80: 2179ecb = 89: 5426f48 gvfs-helper: expose gvfs/objects GET and POST semantics
81: 6591b5d = 90: 55859b9 gvfs-helper: dramatically reduce progress noise
82: f7a81b8 = 91: 914a531 gvfs-helper-client.h: define struct object_id
83: bece812 = 92: 50cf894 gvfs-helper: handle pack-file after single POST request
84: 5723160 = 93: d813b86 test-gvfs-prococol, t5799: tests for gvfs-helper
85: d444498 = 94: 494fb4e gvfs-helper: move result-list construction into install functions
86: 66d83c6 = 95: 83a0ed0 t5799: add support for POST to return either a loose object or packfile
87: 3cf9be0 = 96: e24de7c t5799: cleanup wc-l and grep-c lines
88: 76ca12f = 97: a66b335 gvfs-helper: verify loose objects after write
89: ae0852f = 98: fdf8c15 t7599: create corrupt blob test
90: 58237c0 = 99: ec5b345 gvfs-helper: add prefetch support
91: f94b391 = 100: 6be1047 gvfs-helper: add prefetch .keep file for last packfile
92: d654b3a = 101: f95ff51 gvfs-helper: do one read in my_copy_fd_len_tail()
93: 2752a54 = 102: 3e14e71 gvfs-helper: move content-type warning for prefetch packs
94: cd85c6e = 103: 583f17f fetch: use gvfs-helper prefetch under config
95: 5e7b77e = 104: 9c1c730 gvfs-helper: better support for concurrent packfile fetches
96: e5ef243 = 105: ce24ebc remote-curl: do not call fetch-pack when using gvfs-helper
97: 9879ae0 = 106: 6a244c1 fetch: reprepare packs before checking connectivity
98: 133865c = 107: 18c9fdb gvfs-helper: retry when creating temp files
99: ac98a9e = 108: 83dac6a sparse: avoid warnings about known cURL issues in gvfs-helper.c
100: 9c34cd3 = 109: 21049ad upload-pack: fix race condition in error messages
101: 9a211a3 = 110: 2a43699 maintenance: care about gvfs.sharedCache config
102: e756cec ! 111: 81bc140 unpack-trees:virtualfilesystem: Improve efficiency of clear_ce_flags
103: 6b7e624 = 112: aee9749 homebrew: add GitHub workflow to release Cask
104: d20121c = 113: 9f6c761 Adding winget workflows
105: af01bfd = 114: a521998 Add workflow for apt-get release
106: bf85693 = 115: f4b81fd Disable the
monitor-components
workflow in msft-git107: cf0676c = 116: cd9f824 .github: enable windows builds on microsoft fork
108: 7729533 = 117: cdd5bc5 release: create initial Windows installer build workflow
109: 51369f2 = 118: 7969824 release: add Mac OSX installer build
110: f507846 = 119: 022e480 release: build unsigned Ubuntu .deb package
111: e4f0257 = 120: 0f17d3c release: add signing step for .deb package
112: 9fec74e = 121: 803dbaf release: create draft GitHub release with packages & installers
113: 672a6a7 = 122: fccfdbb release: continue pestering until user upgrades
114: 084d2fa = 123: b805c53 Makefile: allow specifying GIT_BUILT_FROM_COMMIT
115: 66101c2 = 124: 1674a73 dist: archive HEAD instead of HEAD^{tree}
118: b91b42f = 125: 6b38cb0 update-microsoft-git: create barebones builtin
116: 6a598aa = 126: a7adc2d release: include GIT_BUILT_FROM_COMMIT in MacOS build
119: c927262 = 127: ad9fc23 update-microsoft-git: Windows implementation
117: 2a59b7f = 128: 77ccd66 release: add installer validation
120: 50094b9 = 129: 56d93aa update-microsoft-git: use brew on macOS
121: 1938320 = 130: 6bccd6c .github: update ISSUE_TEMPLATE.md for microsoft/git
122: 8eb3f56 = 131: a4e1fa4 .github: update PULL_REQUEST_TEMPLATE.md
123: 18812b3 = 132: da13cf9 Adjust README.md for microsoft/git
130: 5481a0c = 133: d8f7d65 scalar: implement a minimal JSON parser
131: 8662633 = 134: b74ca82 scalar clone: support GVFS-enabled remote repositories
132: c44b2b2 = 135: 4047104 test-gvfs-protocol: also serve smart protocol
133: 1d03d84 = 136: 71eefa9 gvfs-helper: add the
endpoint
command134: b3749a1 = 137: 49a3921 dir_inside_of(): handle directory separators correctly
135: df45a16 = 138: 5dae55c scalar: disable authentication in unattended mode
136: a5c97d8 = 139: 9a68cc1 scalar: do initialize
gvfs.sharedCache
137: c92180d = 140: f260392 scalar diagnose: include shared cache info
138: 457dcd7 = 141: 9035783 scalar: only try GVFS protocol on https:// URLs
139: 903208c = 142: d5a4733 scalar: verify that we can use a GVFS-enabled repository
140: c9e2f51 = 143: 50e4d0d scalar: add the
cache-server
command141: f74080b = 144: d66062e scalar: add a test toggle to skip accessing the vsts/info endpoint
142: e90d4e0 = 145: d855250 scalar: adjust documentation to the microsoft/git fork
143: 8d0dbdd = 146: 8ead9e3 scalar: enable untracked cache unconditionally
144: a662645 = 147: 9a2f49f scalar: parse
clone --no-fetch-commits-and-trees
for backwards compatibility145: a69b309 = 148: 4c4a841 scalar diagnose: accommodate Scalar's Functional Tests
146: 1ff33f5 = 149: 09623f3 ci: run Scalar's Functional Tests
147: 876caad = 150: e9b5395 scalar: upgrade to newest FSMonitor config setting
148: 67c2c4c ! 151: 5e8c31b setup: add discover_git_directory_reason()
149: ab52160 = 152: d4185ec scalar reconfigure: help users remove buggy repos
150: 0d88145 = 153: cfb6795 abspath: make strip_last_path_component() global
151: cfe66d1 = 154: 0095742 scalar: .scalarCache should live above enlistment
152: 4aae3e2 = 155: 05c96a4 scalar: add --no-src option
153: 263ed50 ! 156: a79e0b6 add/rm: allow adding sparse entries when virtual
156: 05bb053 ! 157: 18e4364 repo-settings: enable sparse index by default
157: 8bd255f = 158: da25f7f diff(sparse-index): verify with partially-sparse
158: cb2f51a = 159: 0f52704 stash: expand testing for
git stash -u
160: 5ef1fba = 160: 47cf200 sparse: add vfs-specific precautions
161: 95ed7f6 = 161: 47e4161 maintenance: delete stale lock files
162: afcac2f = 162: 2eab49a reset: fix mixed reset when using virtual filesystem
163: 47c0731 = 163: 333459c gvfs-helper: add --max-retries to prefetch verb
164: e9bd1f7 = 164: d5c0f80 t5799: add tests to detect corrupt pack/idx files in prefetch
165: 6bbc7a4 = 165: 20ab67e gvfs-helper: ignore .idx files in prefetch multi-part responses
166: d202da3 = 166: 6ab087b release: move secrets to workflow environment
167: dddb557 = 167: c6b4544 release: remove pmc deployment workflow
168: 4c999ac = 168: 4268011 gvfs-helper: stop showing index-pack progress
169: 3981c02 = 169: 7473e58 gvfs-helper: show progress of multiple prefetch packs
Lots of added
#include
s, some hunks moved because the respective code moved to different files that sort differently in the diff. And changes in config callbacks required by the function signature changes in upstream (there is now a mandatoryconst struct config_context *ctx
parameter, for example). No functional changes, though.I will use the opportunity to refactor the patches by squashing some obvious bug fixes into the patches that introduce the bugs, and rearranging the patches so that the
gvfs-helper
sub-branches cuddle together, the result should be tree-same to what above-mentionedrange-diff
describes.