Re: [PATCH v2 0/3] some unit-test Makefile polishing
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 2, 2024, 23:52 UTC
- Message-ID
- <b7b92f1a-9231-2f53-299e-ad58fc699284@gmx.de>
- In-Reply-To
- <xmqqh6irwtkd.fsf@gitster.g>
Hi Junio,
On Thu, 1 Feb 2024, Junio C Hamano wrote:
Show 8 quoted lines
> https://github.com/git/git/actions/runs/7748054008 is a run of 'next' > that is broken. > > https://github.com/git/git/actions/runs/7748547579 is a run of 'seen~1' > with this topic reverted (the ps/reftable-backend topic is excluded), > which seems to pass. > > Does it ring a bell, anybody?
Yes, it does ring a clear bell over here. https://github.com/git/git/actions/runs/7748054008/job/21130098985#step:5:81 points to the culprit:
fatal: not a git repository (or any of the parent directories): .git
make: *** [../config.mak.uname:753: vcxproj] Error 128The line 753 of that file (as can be seen at https://github.com/git/git/blob/38aa6559b0c513d755d6d5ccf32414ed63754726/config.mak.uname#L753) is the first statement of the `vcxproj` target, executing `update-refresh`:
vcxproj:
# Require clean work tree
git update-index -q --refresh && \
git diff-files --quiet && \
git diff-index --cached --quiet HEAD --
[...]This means that `vcxproj` is executed. And the explanation is in https://github.com/git/git/actions/runs/7748054008/job/21130098985#step:5:78, which runs `make --quiet -C t 'T=<long-list-of-files>'`, crucially _without_ specifying any Makefile rule, and the `vcxproj` rule happens to be the first one that is defined on Windows, so it's used by default.
One workaround would be to remove the `vcxproj` rule (which by now has been safely superseded by the CMake support we have in `contrib/buildsystems/`).
But the safer way would be to insert these two lines at the beginning of `t/Makefile` (cargo-culted from the top-level `Makefile`):
# The default target of this Makefile is...
all::Ciao, Johannes