Re: [PATCH v2 3/3] ci: stop linking built-ins to the dashed versions
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Aug 26, 2020, 04:19 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2008260615280.56@tvgsbejvaqbjf.bet>
- In-Reply-To
- <xmqq364a3f6r.fsf@gitster.c.googlers.com>
Hi,
On Tue, 25 Aug 2020, Junio C Hamano wrote:
Show 17 quoted lines
> SZEDER Gábor <szeder.dev@gmail.com> writes: > > > I'm afraid I don't understand this patch or the previous one (or > > both?). So this new Makefile knob stops hard-linking the dashed > > builtins _during 'make install'_, but it doesn't affect how Git is > > built by the default target. And our CI jobs only build Git by the > > default target, but don't run 'make install', so setting > > SKIP_DASHED_BUILT_INS wouldn't have any affect anyway. > > Very very true. Let's drop 3/3 if it is not testing anything new. > > I do understand the concern 2/3 wants to address, and it would be a > real one to you especially if you come from Windows. People on the > platform wouldn't be able to use shell scripts written in 12 years > ago or written with the promise we made to our users 12 years ago, > and unlike hardlink-capable platforms it incurs real cost to install > these individual binaries on disk.
Actually, `SKIP_DASHED_BUILT_INS` does not _only_ have an impact on `make install`:
$ rm git-add.exe && make BUILTIN git-add.exe BUILTIN all SUBDIR git-gui SUBDIR gitk-git SUBDIR templates
$ rm git-add.exe && make SKIP_DASHED_BUILT_INS=1 BUILTIN all SUBDIR git-gui SUBDIR gitk-git SUBDIR templates
See how `git-add.exe` is linked in the first, but not in the second run?
So the difference 3/3 has is that those hard-linked executables are not even generated. Now, _technically_ this should not result in any change because we run the test suite without `--with-dashes`.
Practically, it _does_ make a difference, though, as `bin-wrappers/git` _specifically_ sets `GIT_EXEC_PATH` to the top-level directory, i.e. `git-add.exe` _would_ be found if any core Git command that is still implemented as a script called `git-add`.
Therefore, 3/3 makes sure that we really, really, really do not use those dashed invocations ourselves.
Ciao, Dscho