Skip to content

Improve please.sh create-sdk-artifacts - #749

Merged
dscho merged 3 commits into
mainfrom
create-sdk-artifacts-improvements
Oct 7, 2026
Merged

dscho merged 3 commits into
mainfrom
create-sdk-artifacts-improvements

Conversation

@dscho

@dscho dscho commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

While working on resolving issues that would prevent this coming Monday's release of Git for Windows v2.56.0 (which were addressed by #748, but I had to investigate a problem locally that eventually pointed to a successful workflow job to be re-run), In need to replicate scenarios in CI runs locally, which the please.sh script did not easily support.

Here are the changes to allow reusing an existing (even detached) output directory, to specify exactly which git-sdk-* revision to build from, and to work with bare clones of the git-sdk-* repository.

It is often necessary to update a, say, `build-installers` worktree with
a newer tip commit. So far, I have done this via `--force`, which
deletes and then recreates the worktree.

However, I often try to replicate locally what CI runs do, e.g. checking
out `build-extra` into `/usr/src/`. And that would be gone with
`--force`.

Also, it is highly inefficient to throw away so many files only to
rewrite most of them in the identical way.

So let's introduce a `--reuse` option that will allow to do exactly
that: It expects an already-initialized directory, update it as desired,
with a `git reset --hard` to finish the update.

This option implies `--keep-worktree`.

Signed-off-by: Johannes Schindelin <[email protected]>
Sometimes I am operating from a checkout that can not easily be updated,
e.g. because pulling `main` from git-for-windows/git-sdk-64 would update
the MSYS2 runtime or Git or any other executable, really, that I am
still using.

In those cases I still might need to create an SDK artifact from the
most recent commit. The new `--head=<revision>` option allows that.

Signed-off-by: Johannes Schindelin <[email protected]>
The script so far assumes that the provided `--sdk=<path>` refers to the
main worktree. However, that is not always the case; I might even have a
bare, partial clone lying around that I need to use to initialize --
quickly! -- an SDK artifact. Let's allow for that.

Signed-off-by: Johannes Schindelin <[email protected]>
wawerekxxx-debug

This comment was marked as spam.

@dscho
dscho merged commit 75e6f0e into main Oct 7, 2026
18 checks passed
@dscho
dscho deleted the create-sdk-artifacts-improvements branch October 7, 2026 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants