Message ID | 1269d7ace84b5d0e9a009044b49251cdf1dfbd23.1597655273.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Optionally skip linking/copying the built-ins | expand |
Johannes Schindelin <gitgitgadget@gmail.com> 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 <johannes.schindelin@gmx.de> > --- > 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
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
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. In preparation for eventually dropping those hard-links, teach the CI (and PR) builds to skip generating those hard-links. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- ci/run-build-and-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)