git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Heiko Voigt <hvoigt@hvoigt.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jens Lehmann <Jens.Lehmann@web.de>, Jeff King <peff@peff.net>,
	Phil Hord <phil.hord@gmail.com>, Git <git@vger.kernel.org>,
	Jonathan Nieder <jrnieder@gmail.com>,
	"W. Trevor King" <wking@tremily.us>,
	Karsten Blees <karsten.blees@gmail.com>
Subject: Re: [PATCH v5 1/4] implement submodule config API for lookup of .gitmodules values
Date: Mon, 13 Jul 2015 13:17:25 +0200	[thread overview]
Message-ID: <20150713111725.GB27160@book.hvoigt.net> (raw)
In-Reply-To: <xmqqoajlumnp.fsf@gitster.dls.corp.google.com>

On Thu, Jul 09, 2015 at 01:00:10PM -0700, Junio C Hamano wrote:
> Jens Lehmann <Jens.Lehmann@web.de> writes:
> 
> >> How does git-submodule access this information? It looks like it just
> >> hits "git config -f .gitmodules" directly. Perhaps whatever interface is
> >> designed should be suitable for its use here (and if there really is no
> >> more interesting interface needed, then why is "git config" not good
> >> enough for other callers?).
> >
> > The git-submodule script doesn't need this and is fine using plain old
> > "git config", as by the time it is run the .gitmodules file is already
> > updated in the work tree. Heiko's series is about adding infrastructure
> > to allow builtins like checkout and friends to access the configuration
> > values from the .gitmodules file of the to-be-checked-out commit when
> > run with "--recurse-submodules". And yes, if we want to expose this
> > functionality to users or scripts some day "git config" looks like the
> > best place to do that to me too.
> 
> Did you mean "git submodule config"?

I think he actually meant "git config" and that is already implemented.
When I implemented the infrastructure to read configurations from blobs,
Peff extended it so it will be exposed via the config command line. E.g.
you can do:

	git config --blob HEAD^^^:.gitmodules <value>

to get .gitmodules configurations from the history, so that is already
implemented.  And for reading .gitmodules values we probably do not need
more, since calling git from scripting we always have new invocations of
processes anyway and that would throw away the cache I am implementing.
Reading such values via config from scripts is also more flexible since
it supports arbitrary values and my cache only specific values needed by
the builtins that use it.

My submodule config cache infrastructure is directed for C-code wanting
to query submodule values. So e.g. when "git checkout" wants to know
about values but the ".gitmodules" file that is in charge, but has not
been checked out yet. We also need this for fetch which will actually
need values from more than one revision, since we might need to merge
configurations when fetching multiple branches. Fetch also needs
information about URLs for new submodules that appear in branches, when
auto clone is switched on. That means to support the "I want to go on an
airplane get me everything I might need" use-case.

Cheers Heiko

  reply	other threads:[~2015-07-13 11:20 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-15 21:06 [PATCH v5 0/4] submodule config lookup API Heiko Voigt
2015-06-15 21:06 ` [PATCH v5 1/4] implement submodule config API for lookup of .gitmodules values Heiko Voigt
2015-06-16 10:54   ` Heiko Voigt
2015-07-08 20:52   ` Phil Hord
2015-07-09 12:09     ` Heiko Voigt
2015-07-09 15:49       ` Jeff King
2015-07-09 19:41         ` Jens Lehmann
2015-07-09 20:00           ` Junio C Hamano
2015-07-13 11:17             ` Heiko Voigt [this message]
2015-07-13 15:49               ` Junio C Hamano
2015-06-15 21:06 ` [PATCH v5 2/4] extract functions for submodule config set and lookup Heiko Voigt
2015-06-15 21:06 ` [PATCH v5 3/4] use new config API for worktree configurations of submodules Heiko Voigt
2015-06-15 21:06 ` [PATCH v5 4/4] do not die on error of parsing fetchrecursesubmodules option Heiko Voigt
2015-06-15 21:48 ` [PATCH v5 0/4] submodule config lookup API Junio C Hamano
2015-08-10 19:23   ` Stefan Beller
2015-08-12 17:53     ` Junio C Hamano

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=20150713111725.GB27160@book.hvoigt.net \
    --to=hvoigt@hvoigt.net \
    --cc=Jens.Lehmann@web.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=karsten.blees@gmail.com \
    --cc=peff@peff.net \
    --cc=phil.hord@gmail.com \
    --cc=wking@tremily.us \
    /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).