Subject: Re: [PATCH 3/3] ci: stop linking built-ins to the dashed versions

From: Junio C Hamano <[email-masked]>
Date: Mon, 17 Aug 2020 11:26:11 -0700

Johannes Schindelin <[email-masked]> writes:

> Originally, all of Git's subcommands were implemented in their own
> executable/script, using the naming scheme `git-<command-name>`. When
> more and more functionality was turned into built-in commands (i.e. the
> `git` executable could run them without spawning a separate process),
> for backwards-compatibility, we hard-link the `git` executable to
> `git-<built-in>` for every built-in.
>
> This backwards-compatibility was needed to support scripts that called
> the dashed form, even if we deprecated that a _long_ time ago.

The other day, I found this amusing (yes, I am a fan of Emacs).

https://medium.com/@steve.yegge/dear-google-cloud-your-deprecation-policy-is-killing-you-ee7525dc05dc

> In preparation for eventually dropping those hard-links, teach the CI
> (and PR) builds to skip generating those hard-links.

You do not have to set the policy of "eventuall dropping" here.
The presence of the choice of not installing added in step [2/3]
alone is a very good justification to include this patch in the
series.  Otherwise, we won't know if our test suite and remaining
scripted Porcelain rely on the age old promise we made and have kept
to the end users, as [2/3] requires all our users accept the
breakage of the promise.

It may be a good idea to test both configurations, with or without
SKIP_DASHED, at least for now, though.

Thanks.

> Signed-off-by: Johannes Schindelin <[email-masked]>
> ---
>  ci/run-build-and-tests.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh
> index 17e25aade9..b074db5c4b 100755
> --- a/ci/run-build-and-tests.sh
> +++ b/ci/run-build-and-tests.sh
> @@ -10,7 +10,7 @@ windows*) cmd //c mklink //j t\\.prove "$(cygpath -aw "$cache_dir/.prove")";;
>  *) ln -s "$cache_dir/.prove" t/.prove;;
>  esac
>  
> -make
> +make SKIP_DASHED_BUILT_INS=YesPlease
>  case "$jobname" in
>  linux-gcc)
>  	make test