On Tue, Mar 13 2018, Ævar Arnfjörð Bjarmason jotted: > On Thu, Mar 08 2018, Daniel Jacques jotted: > >>> It would be great to have this rebooted now that my perl cleanup efforts >>> have un-blocked this. Will be happy to help review & test the next >>> iteration. >> >> Yes, I was just thinking the same thing. I wanted to make sure the Perl >> changes had landed, and I'm pleased to see that they have. I should have >> time in the next few days to rebase and put up a new version of the patch >> series. I'll keep you in the loop, and thanks for pinging! > > Related to this, I came across this bug report > https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3265 which is > wondering why we're installing N copies of the git binary, presumably > they're building with NO_INSTALL_HARDLINKS. > > Just doing this: > > diff --git a/Makefile b/Makefile > index de4b8f0c02..2222319a4f 100644 > --- a/Makefile > +++ b/Makefile > @@ -2596,7 +2596,7 @@ endif > for p in git$X $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \ > $(RM) "$$execdir/$$p" && \ > test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \ > - ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \ > + ln -s "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \ > cp "$$bindir/$$p" "$$execdir/$$p" || exit; \ > done; \ > } && \ > > Seems to work for me, although obviously this would need to be optional, > and it'll get in the way of Daniel's patch since it use the absolute > path. > > But is there any reason anyone can think of for why we shouldn't be > figuring out the relative path and symlinking the two? Also, as another follow-up question. we have stuff like "git-add" in the libexec/ directory, but when you run "git add" the bin/git binary just handles that internally, it's not dispatching to libexec/git-add. Is the only reason we're still installing these binaries like git-add in libexec for compatibility with some old installation where that was added to the $PATH, shouldn't we (and I can write this patch) also have a toggle for "I want the modern install method" which would not install any of these binaries like git-add at all? Then the libexec/ dir would only contain things that we really do need the bin/git to dispatch to, like git-svn, git-bisect etc.