git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Paul Smith <paul@mad-scientist.net>
Cc: Daniel Jacques <dnj@google.com>, git@vger.kernel.org
Subject: Re: Git 2.18: RUNTIME_PREFIX... is it working?
Date: Sun, 8 Jul 2018 23:52:22 +0200 (DST)	[thread overview]
Message-ID: <nycvar.QRO.7.76.6.1807082346140.75@tvgsbejvaqbjf.bet> (raw)
In-Reply-To: <bf0d4f33701ec694917f2e710c3fb097085c8d69.camel@mad-scientist.net>

Hi Paul,

On Sun, 8 Jul 2018, Paul Smith wrote:

> On Fri, 2018-07-06 at 09:18 -0400, Daniel Jacques wrote:
> > I forewent autoconf because I was concerned that the option was too
> > obscure and the configuration too nuanced to be worth adding via
> > flag, as RUNTIME_PREFIX requires some degree of path alignment and is
> > fairly special-case. If you prefer autoconf, though, it sounds like a
> > good thing to add, and I'm happy that you are finding the feature
> > useful!
> 
> Well, far from obscure, I actually think that RUNTIME_PREFIX should be
> the default behavior on all platforms.  In fact speaking for myself, I
> see no value at all in the hardcoded path behavior and it could be
> removed and RUNTIME_PREFIX be the only option and that would be fine
> with me.
> 
> The only possible advantage I can see to the current default that you
> can copy the Git binary alone somewhere else, but that's of very little
> value IMO: you could instead create a symbolic link or a two-line shell
> script wrapper if you wanted to have "git" available outside of its
> normal relation to the rest of the installation for some reason.

In theory, I agree with you, I would love for RUNTIME_PREFIX not even to
be needed.

In practice, however, a *loooong* time ago it was decided that it was okay
to implement parts of Git as shell scripts, and when those shell scripts
finally became too many, in order not to clutter the `PATH`, they were
moved to the libexec/git-core/ directory.

Obviously, for this to work, Git needs to prefix the `PATH` variable
internally, and for that it has to know where that libexec/git-core/
directory lives.

Now, if you care to have a look at Dan's (and my) patches to implement
RUNTIME_PREFIX so that it looks for a directory *relative to the Git
binary*, you will see that it is far from portable. In fact, it is very
definitely not portable, and needs specific support for *every single
supported Operating System*. And while we covered a lot, we did not cover
all of them.

So unfortunately, it is impossible to make it the default, I am afraid.
Until the time when we can ship a single `git` binary (which is sadly
unlikely to happen, as there has been a *lot* of pushback against that
e.g. on the grounds that having to (lazy-)load the cURL library adds a
tiny bit to the startup time of the `git` binary).

It is all a bit complex, due to non-technical reasons.

Ciao,
Dscho

  reply	other threads:[~2018-07-08 21:52 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-04  5:12 Git 2.18: RUNTIME_PREFIX... is it working? Paul Smith
2018-07-04 11:22 ` Johannes Schindelin
2018-07-05 15:36   ` Paul Smith
2018-07-06  9:00     ` Johannes Schindelin
2018-07-06 13:18       ` Daniel Jacques
2018-07-08 18:52         ` Paul Smith
2018-07-08 21:52           ` Johannes Schindelin [this message]
2018-07-09 19:58             ` Jeff King
2018-07-09 20:26               ` Johannes Schindelin
2018-07-10  2:21                 ` Jeff King
2018-07-10 11:40                   ` Johannes Schindelin
2018-07-10 14:03                     ` Daniel Jacques
2018-07-10 16:09                       ` Junio C Hamano
2018-07-09 21:05               ` Junio C Hamano
2018-07-10  3:56               ` Jeff King
2018-07-10  7:13                 ` Perry Hutchison
2018-07-10 14:03                   ` Jeff King
2018-07-10 22:20                     ` Jonathan Nieder
2018-07-10 22:21                       ` Jonathan Nieder
2018-07-17  9:45                       ` Johannes Schindelin
2018-07-14 20:51                     ` brian m. carlson
2018-07-18 12:18                       ` Johannes Schindelin
2018-07-19 22:26                         ` brian m. carlson
2018-07-20 14:29                           ` Jeff Hostetler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=nycvar.QRO.7.76.6.1807082346140.75@tvgsbejvaqbjf.bet \
    --to=johannes.schindelin@gmx.de \
    --cc=dnj@google.com \
    --cc=git@vger.kernel.org \
    --cc=paul@mad-scientist.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).