git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Stefan Beller <sbeller@google.com>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>,
	"git@vger.kernel.org" <git@vger.kernel.org>,
	Heiko Voigt <hvoigt@hvoigt.net>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCHv2 1/2] push: change submodule default to check when submodules exist
Date: Tue, 4 Oct 2016 12:51:26 -0700	[thread overview]
Message-ID: <CAGZ79kbt+SZoogKTV_-rVfOOFzf6xrhWytrBo2H3r6NQw34WTw@mail.gmail.com> (raw)
In-Reply-To: <20161004193926.32w7yivkakqoadm2@sigill.intra.peff.net>

On Tue, Oct 4, 2016 at 12:39 PM, Jeff King <peff@peff.net> wrote:
> On Tue, Oct 04, 2016 at 12:29:09PM -0700, Stefan Beller wrote:
>
>> Jeff wrote:
>> > Consulting .git/config is fine, I think. It's not like we don't read it
>> > (sometimes multiple times!) during the normal course of the program
>> > anyway. It's just a question of whether it makes more sense for the
>> > heuristic to kick in after "init", or only after "update". I don't know
>> > enough to have an opinion.
>>
>> I think there is no difference in practice, however the "after update"
>> is way easier to implement and hence more maintainable (one lstat instead of
>> fiddeling with the config; that can go wrong easily).
>
> Hmm, I would have thought it is the opposite; can't submodules exist in
> the working tree in their own ".git" directory? I know that's the "old"
> way of doing it, but I didn't know if it was totally deprecated.

Oo, right. :(

The proposed patch would not change the current behavior for a layout of
.git directories inside the submodule working trees, actually.
It would however also not have the desired effect of enabling the check for
push.

However these not-yet-deprecated layouts are likely in use by people
who know what they are doing, so maybe we can punt on that.

>
> Anyway, the config version is probably just:
>
>   int config_check_submodule(const char *var, const char *value, void *data)
>   {
>         if (starts_with(var, "submodule.") && ends_with(var, ".path"))

s/.path/.url/ but I get the point. I do dislike this solution for
another reasons though:

In the future when worktree supports submodules we either
have the url per worktree,so we'd need to process all working tree
configs as well
or we do it the proper way, which is replacing the submodule.$name.url variable
with 2 options, one is purely used to configure the URL and the other is purely
used to indicate the existence of a submodule.  Piling on the mixed use case of
urls today feels sad.


>                 *(int *)data = 1;
>         return 0;
>   }
>
>   ...
>   int have_submodule = 0;
>   git_config(config_check_submodule, &have_submodule);
>
> But I don't care too much either way. that's just for reference.
>
>> @@ -31,6 +32,19 @@ static const char **refspec;
>>  static int refspec_nr;
>>  static int refspec_alloc;
>>
>> +static void preset_submodule_default(void)
>> +{
>> +     struct strbuf sb = STRBUF_INIT;
>> +     strbuf_addf(&sb, "%s/modules", get_git_dir());
>> +
>> +     if (file_exists(sb.buf))
>
> Maybe just:
>
>   if (file_exists(git_path("modules"))

Sounds good.

So I'll see if I can get the version running you propose here, otherwise
I'll resend with these changes.


>
> ?
>
> -Peff

  reply	other threads:[~2016-10-04 19:51 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-03 21:11 Slow pushes on 'pu' - even when up-to-date Linus Torvalds
2016-10-03 21:17 ` Stefan Beller
2016-10-03 21:23   ` Stefan Beller
2016-10-03 22:06     ` Junio C Hamano
2016-10-04 11:18 ` Heiko Voigt
2016-10-04 11:44   ` Jeff King
2016-10-04 12:04     ` Heiko Voigt
2016-10-04 12:07       ` Jeff King
2016-10-04 16:19     ` Junio C Hamano
2016-10-04 16:21       ` Jeff King
2016-10-04 16:40         ` [PATCH] push: change submodule default to check Stefan Beller
2016-10-04 17:34           ` Jeff King
2016-10-04 17:48             ` Stefan Beller
2016-10-04 17:54               ` Jeff King
2016-10-04 18:04                 ` Junio C Hamano
2016-10-04 18:08                   ` Stefan Beller
2016-10-04 18:28                     ` Jeff King
2016-10-04 19:29                       ` [PATCHv2 1/2] push: change submodule default to check when submodules exist Stefan Beller
2016-10-04 19:29                         ` [PATCH 2/2] builtin/push: move flags do_push Stefan Beller
2016-10-04 19:39                         ` [PATCHv2 1/2] push: change submodule default to check when submodules exist Jeff King
2016-10-04 19:51                           ` Stefan Beller [this message]
2016-10-04 21:03                             ` [PATCHv3 " Stefan Beller
2016-10-05 13:53                               ` Heiko Voigt
2016-10-06  9:23                                 ` Heiko Voigt
2016-10-06 17:20                                   ` Stefan Beller
2016-10-07 12:41                                     ` Heiko Voigt
2016-10-05 15:47                               ` Jeff King
2016-10-05 15:54                                 ` Stefan Beller
2016-10-04 18:00           ` [PATCH] push: change submodule default to check Junio C Hamano
2016-10-04 18:02             ` Junio C Hamano
2016-10-04 18:05             ` Stefan Beller

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=CAGZ79kbt+SZoogKTV_-rVfOOFzf6xrhWytrBo2H3r6NQw34WTw@mail.gmail.com \
    --to=sbeller@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=hvoigt@hvoigt.net \
    --cc=peff@peff.net \
    --cc=torvalds@linux-foundation.org \
    /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).