From: Junio C Hamano <gitster@pobox.com>
To: Heiko Voigt <hvoigt@hvoigt.net>
Cc: Jeff King <peff@peff.net>, Stefan Beller <sbeller@google.com>,
"git\@vger.kernel.org" <git@vger.kernel.org>,
Jens Lehmann <Jens.Lehmann@web.de>,
Fredrik Gustafsson <iveqy@iveqy.com>,
Leandro Lucarella <leandro.lucarella@sociomantic.com>
Subject: Re: [PATCH 2/2] serialize collection of refs that contain submodule changes
Date: Mon, 19 Sep 2016 13:09:41 -0700 [thread overview]
Message-ID: <xmqqeg4fejne.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20160919195118.GB62429@book.hvoigt.net> (Heiko Voigt's message of "Mon, 19 Sep 2016 21:51:18 +0200")
Heiko Voigt <hvoigt@hvoigt.net> writes:
> I am not sure if I understand you correctly here. With the "ref cache layer"
> you are referring to add_submodule_odb() which is called indirectly from
> submodule_needs_pushing()? Those revs are only used to check whether the hash
> we need on the remote side exists in the local submodule. That should not
> change due to a push. The actual check whether the commit(s) exist on the
> remote side is done using a 'rev-list' in a subprocess later.
I was wondering what would happen in this scenario:
* You have ON_DEMAND set, which causes "git -C sub push origin" to
push out what are new, updating the remote tracking branches in
the submodule, sub/.git/refs/remotes/origin/*.
* Then you check again. If you used for-each-ref-in-submodule, the
updated refs/remotes/origin/* may not have been re-read.
But you check by spawning "rev-list ... --not --remotes" as a
separate process in submodule_needs_pushing(), and that will force
the new process to read the updated state, so it turns out that I
was overly worried without good reason ;-)
It may matter once somebody tries to internalize the external
rev-list call done via start_command() interface to an internal
call, though. But we are not there yet.
prev parent reply other threads:[~2016-09-19 20:09 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-24 17:30 [PATCHv2] push: change submodule default to check Stefan Beller
2016-08-24 18:38 ` Junio C Hamano
[not found] ` <20160824183112.ceekegpzavnbybxp@sigill.intra.peff.net>
2016-08-24 19:37 ` Junio C Hamano
2016-08-24 21:26 ` Junio C Hamano
2016-08-24 22:37 ` Stefan Beller
2016-08-24 23:01 ` Jeff King
2016-09-14 17:31 ` [PATCH 1/2] serialize collection of changed submodules Heiko Voigt
2016-09-14 22:30 ` Junio C Hamano
2016-09-15 12:10 ` [PATCH 3/2] batch check whether submodule needs pushing into one call Heiko Voigt
2016-09-15 21:08 ` Junio C Hamano
2016-09-16 9:40 ` Heiko Voigt
2016-09-16 12:31 ` Heiko Voigt
2016-09-16 18:13 ` Junio C Hamano
2016-09-19 20:08 ` Heiko Voigt
2016-09-16 17:59 ` Junio C Hamano
2016-09-19 19:58 ` Heiko Voigt
2016-09-15 12:18 ` [PATCH 4/2] use actual start hashes for submodule push check instead of local refs Heiko Voigt
2016-09-16 17:27 ` [PATCH 1/2] serialize collection of changed submodules Junio C Hamano
2016-09-19 19:44 ` Heiko Voigt
2016-09-14 17:51 ` [PATCH 2/2] serialize collection of refs that contain submodule changes Heiko Voigt
2016-09-14 19:46 ` Heiko Voigt
2016-09-14 20:04 ` Stefan Beller
2016-09-16 17:47 ` Junio C Hamano
2016-09-19 19:51 ` Heiko Voigt
2016-09-19 20:09 ` Junio C Hamano [this message]
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqeg4fejne.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=Jens.Lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=hvoigt@hvoigt.net \
--cc=iveqy@iveqy.com \
--cc=leandro.lucarella@sociomantic.com \
--cc=peff@peff.net \
--cc=sbeller@google.com \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.