"Johannes Schindelin via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > This Action not only downloads and extracts git-sdk-64-minimal _outside_ > the worktree (making it no longer necessary to meddle with > `.gitignore` or `.git/info/exclude`), it also adds the `bash.exe` to the > `PATH` and sets the environment variable `MSYSTEM` (an implementation > detail that Git's workflow should never have needed to know about). > > This allows us to convert all those funny PowerShell tasks that wanted > to call git-sdk-64-minimal's `bash.exe`: they all are now regular `bash` > scriptlets. > > This finally lets us get rid of the funny quoting and escaping where we > had to pay attention not only to quote and escape the Bash scriptlets > properly, but also to add a second level of escaping (with backslashes > for double quotes and backticks for dollar signs) to stop PowerShell > from doing unintended things. > > Further, this Action uses a fast caching strategy native to GitHub > Actions that should accelerate the download across CI runs: > git-sdk-64-minimal is usually updated once per 24h, and needs to be > cached only once within that period. Caching it (unfortunately only on > a per-branch basis) speeds up the download step, and makes it much more > robust at the same time by virtue of accessing a cache location that is > closer in the network topology. So nice.