Re: What's cooking in git.git (Apr 2014, #09; Tue, 29)
- From
John Keeping <john@keeping.me.uk>
- Date
- May 7, 2014, 08:05 UTC
- Message-ID
- <20140507080558.GH23935@serenity.lan>
- In-Reply-To
- <xmqqd2fqcv7s.fsf@gitster.dls.corp.google.com>
On Tue, May 06, 2014 at 05:01:59PM -0700, Junio C Hamano wrote:
Show 22 quoted lines
> John Keeping <john@keeping.me.uk> writes:
>
> > I'd like to register my opposition to moving git-remote-{bzr,hg} out of
> > contrib/.
> >
> > I am not convinced that tools for interoperating with other VCSs need to
> > be part of core Git; as Junio has pointed out previously, while contrib/
> > was necessary ... Associated tools can
> > therefore live on their own and do not need to be promoted as part of
> > Git itself (as git-imerge is doing successfully).
>
> Another thing to keep in mind is that we need to ensure that we give
> a good way for these third-party tools to integrate well with the
> core Git tools to form a single toolchest for the users. I would
> love to be able to do
>
> $ (cd git.git && make install)
> $ (cd git-imerge.git && make install)
>
> and then say "git imerge", "git --help imerge", etc. The same for
> the remote helpers that we may be splitting out of my tree into
> their own stand-alone projects.This can already work given suitable installation. With git-integration[1] I can type `git help integration` and it shows me the man page in the same way that `git help commit` does. When I manually linked the HTML file to the right place `git help -w integration` worked as well.
Show 24 quoted lines
> I _think_ it probably is OK for git-imerge.git/Makefile to peek into > our Makefile, e.g. > > $ cd git-imerge.git > $ make GIT_SOURCE_DIR=../git.git install > > to learn where imerge should install its subcommand implementation > and documentation. It might even want to borrow the test framework > by using $GIT_SOURCE_DIR/t/test-lib.sh or somesuch. There may be > some changes the third-party tool authors would want to have in our > Makefile to help them better when building their tools this way; I > dunno. > > I also think that there should be a way to make it really easy to > install these third-party tools to augment the installed version of > Git without having the source tree of Git. We have ways for them to > ask us where things are expected to be, e.g. > > $ git --html-path > $ git --man-path > $ git --exec-path > > but I am not sure if these are enough, or if it would help them to > add a bit more, then what these "a bit more" are.
I think this is enough - now I need to go and make git-integration's Makefile use them by default rather than just using the same defaults as git.git.
Perhaps it would be useful to have a skeleton "external Git utility" project under contrib/ which could demonstrate best practice for installing utilties that augment Git.
[1] http://johnkeeping.github.io/git-integration/