Skip to content

Conversation

@dscho
Copy link
Member

@dscho dscho commented Nov 14, 2025

When upstream Git decided to rename all of its documentation files from *.txt to *.adoc, many things broke that were not acutely visible at first. One of those things was that git help git-bash all of a sudden no longer worked. Let's make it work again.

@dscho dscho requested a review from mjcheetham November 14, 2025 14:07
@dscho dscho self-assigned this Nov 14, 2025
This is yet another victim of that clumsily-executed and under-prepared
`.txt` -> `.adoc` change in upstream Git.

Signed-off-by: Johannes Schindelin <[email protected]>
@dscho dscho force-pushed the include-git-bash-manual-page-again branch from 09ddfb4 to f608ad1 Compare November 14, 2025 14:13
@dscho dscho marked this pull request as ready for review November 14, 2025 14:59
@dscho dscho merged commit 7b42a49 into main Nov 14, 2025
3 checks passed
@dscho dscho deleted the include-git-bash-manual-page-again branch November 14, 2025 15:10
@dscho
Copy link
Member Author

dscho commented Nov 14, 2025

/add relnote bug The command git help git-bash was broken by a change in upstream Git v2.49.0, which has been fixed.

The workflow run was started

github-actions bot pushed a commit to git-for-windows/build-extra that referenced this pull request Nov 14, 2025
The command `git help git-bash` was broken by a change in upstream Git
v2.49.0, which [has been
fixed](git-for-windows/MINGW-packages#171).

Signed-off-by: gitforwindowshelper[bot] <[email protected]>
dscho added a commit that referenced this pull request Nov 20, 2025
This PR represents step 1 of what is likely the most important part of
msys2#16383: splitting up
Git for Windows' `mingw-w64-git` into smaller, much more manageable
chunks. Step 2 will be to open a PR to add `mingw-w64-git/*` to the
upstream `MINGW-packages` repository, and step 3 will be to automate the
synchronization between MSYS2's and Git for Windows' `MINGW-packages`
repositories' `mingw-w64-git/` folders.

As far as MSYS2 is concerned, the "new", slightly trimmed-down
`mingw-w64-git` package contains exactly what I'd imagine regular MSYS2
users would want in that package: The canonical Git commands. Users who
wish to use more

As far as Git for Windows is concerned, this changes a few things:
- There is now a `mingw-w64-git-for-windows-addons` package, which
contains the Git for Windows-specific stuff like the Git wrapper and
`/git-bash.exe`; It depends on `mingw-w64-git` as well as on some other,
likewise newly-split-off packages and is meant to take on
`mingw-w64-git`'s role in Git for Windows (e.g. in
[`make-file-list.sh`](https://github.com/git-for-windows/build-extra/blob/main/make-file-list.sh),
the central script defining what goes into Git for Windows' installers).
- While some commands (e.g. `archimport`) were already excluded from Git
for Windows' installers, their documentation were still included, which
is fixed via this new split.
- This unfortunately opens Git for Windows up to be susceptible to
upstream changes like the "somewhat interestingly-executed" `.txt` ->
`.adoc` change. If there are similar upstream changes, the `PKGBUILD`
will need to be adjusted (and it is even possible to miss the need for
those adjustments, as was the case for the missing `git-bash` manual
page which necessitated the quite belated fix in #171).

I verified that the resulting packages are complete via comparing the
output of `for f in *.pkg.tar.zst; do tar tvf $f; done | cut -c 49- |
grep -ve '^\.' -e '/$' | sort | uniq` for the generated artifacts of a
local build vs those of Git for Windows v2.51.2. I also verified that no
file is included in multiple packages by appending a `-d` option to the
`uniq` invocation (which came up empty, as expected).

Note: There is a good chance that the MSYS2 project will want to have a
few changes before accepting this package definition. For example, I
could imagine that they do _not_ want to carry
`mingw-w64-git-for-windows-addons` in their Pacman repository (in which
case we'd need to guard it via an environment variable that Git for
Windows' automation then sets so that it this package gets built). Or,
they would potentially want to skip generating `.pdb` files, in which
case we'd need to flip the `WITHOUT_PDBS` logic into a `WITH_PDBS` one.
Or, they might want the `SIGNTOOL` guard to live in the `PKGBUILD` file
instead of the `mingw-w64-git.mak` file. I am prepared to make all of
those changes if asked.

Note also: I used GitHub Copilot to develop this PR in an AI-assisted
way. It was moderately successful; A large part of the changes was done
correctly, and it saved me time in the sense that I would probably have
taken about 20-40% longer (it still took me about 3x more time to clean
up the changes than it took me to develop the first iteration, but at
least that first part was kinda fun).
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.

3 participants