Ævar Arnfjörð Bjarmason [off-list ref] writes:
quoted
So I would understand if there are two orthogonal knobs
- the order of preference (e.g. hardlink > symlink > copy)
- which ones are allowed (e.g. "no symlinks please")
but I cannot quite imagine how a system without any fallback would
be useful.
Because with explicit knobs I'd like to tell it what to do and not have
it auto-guess.
So how would I explicitly tell "I want hardlinks for everything
else, but use cp when going between /usr/bin and /usr/libexec"
(because /usr/bin and /usr/libexec is not on the same filesystem
on this particular box---I'll tell you to use hardlink everywhere
on another box of mine where they reside on the same filesystem)?
Your argument or analogy with openssl does not make much sense to me
in this case.
On Wed, Mar 31 2021, Junio C Hamano wrote:
Ævar Arnfjörð Bjarmason [off-list ref] writes:
quoted
quoted
So I would understand if there are two orthogonal knobs
- the order of preference (e.g. hardlink > symlink > copy)
- which ones are allowed (e.g. "no symlinks please")
but I cannot quite imagine how a system without any fallback would
be useful.
Because with explicit knobs I'd like to tell it what to do and not have
it auto-guess.
So how would I explicitly tell "I want hardlinks for everything
else, but use cp when going between /usr/bin and /usr/libexec"
(because /usr/bin and /usr/libexec is not on the same filesystem
on this particular box---I'll tell you to use hardlink everywhere
on another box of mine where they reside on the same filesystem)?
Just as you would now:
make NO_CROSS_DIRECTORY_HARDLINKS=Y install
That'll get you hardlinks within bin/ and libexec, but copies between
them, and no symlinks.
The behavior change in this series is if your "ln" errors out we'll no
longer silently plow ahead and e.g. not hardlink *within* bin and
libexec in that case.
Your argument or analogy with openssl does not make much sense to me
in this case.
The point is the Makefile shouldn't be second-guessing explicit
requests. That's what defaults are for.