All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: qemu-devel@nongnu.org, "Thomas Huth" <thuth@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [PATCH] gitmodules: recurse by default
Date: Fri, 7 Oct 2022 11:45:56 +0100	[thread overview]
Message-ID: <Y0ADZAQbjIJMVzXp@redhat.com> (raw)
In-Reply-To: <20221007061037-mutt-send-email-mst@kernel.org>

On Fri, Oct 07, 2022 at 06:11:25AM -0400, Michael S. Tsirkin wrote:
> On Fri, Oct 07, 2022 at 09:07:17AM +0100, Daniel P. Berrangé wrote:
> > On Thu, Oct 06, 2022 at 08:24:01PM -0400, Michael S. Tsirkin wrote:
> > > On Thu, Oct 06, 2022 at 07:54:52PM +0100, Daniel P. Berrangé wrote:
> > > > On Thu, Oct 06, 2022 at 07:39:07AM -0400, Michael S. Tsirkin wrote:
> > > > > The most commmon complaint about submodules is that
> > > > > they don't follow when one switches branches in the
> > > > > main repo. Enable recursing into submodules by default
> > > > > to address that.
> > > > > 
> > > > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > > > > ---
> > > > >  .gitmodules | 23 +++++++++++++++++++++++
> > > > >  1 file changed, 23 insertions(+)
> > > > 
> > > > What am I missing, as I tried something equiv to this change
> > > > with one submodule and it didn't appear to have any effect.
> > > > I started from a clean slate:
> > > > 
> > > > $ git submodule  deinit --all --force
> > > > 
> > > > The .gitmodules config has 'recurse = true' for the ui/keycodemapdb
> > > > module:
> > > > 
> > > > $ grep keycodemap --after 1 .gitmodules 
> > > > [submodule "ui/keycodemapdb"]
> > > > 	path = ui/keycodemapdb
> > > > 	url = https://gitlab.com/qemu-project/keycodemapdb.git
> > > > 	recurse = true
> > > > 
> > > > I have a change on master setting the submodule commit:
> > > > 
> > > > $ git show master | grep +Sub
> > > > +Subproject commit 7381b9bfadd31c4c9e9a10b5bb5032f9189d4352
> > > > 
> > > > and check it out:
> > > > 
> > > > $ git submodule update --init ui/keycodemapdb
> > > > Submodule 'ui/keycodemapdb' (https://gitlab.com/qemu-project/keycodemapdb.git) registered for path 'ui/keycodemapdb'
> > > > Submodule path 'ui/keycodemapdb': checked out '7381b9bfadd31c4c9e9a10b5bb5032f9189d4352'
> > > > 
> > > > 
> > > > In another branch I have a different commit:
> > > > 
> > > > $ git show sub-foo  | grep +Sub
> > > > +Subproject commit 57ba70da5312170883a3d622cd2aa3fd0e2ec7ae
> > > > 
> > > > 
> > > > Now I switch branches and nothing happens, the submodule
> > > > is marked as dirty:
> > > > 
> > > > $ git checkout sub-foo
> > > > M	ui/keycodemapdb
> > > > Switched to branch 'sub-foo'
> > > > 
> > > > $ (cd ui/keycodemapdb && git show | head -1)
> > > > commit 7381b9bfadd31c4c9e9a10b5bb5032f9189d4352
> > > > 
> > > > 
> > > > >From your description (and indeed that of the man page) it
> > > > sounded like ui/keycodemapdb should have got updated to
> > > > commit 57ba70da5312170883a3d622cd2aa3fd0e2ec7ae when I did
> > > > 'git checkout', but that didn't happen
> > > 
> > > I think .gitmodules got overwritten when you checked out the branch.
> > > Possible?
> > 
> > No, it the same in both branches, since they share a common
> > ancestor commit which added the recurse tag
> > 
> > $ git checkout master
> > Switched to branch 'master'
> > $ git grep keycodemapdb --after 1 .gitmodules 
> > [submodule "ui/keycodemapdb"]
> > 	path = ui/keycodemapdb
> > 	url = https://gitlab.com/qemu-project/keycodemapdb.git
> > 	recurse = true
> > $ git checkout sub-foo 
> > M	ui/keycodemapdb
> > Switched to branch 'sub-foo'
> > $ grep keycodemapdb --after 1 .gitmodules 
> > [submodule "ui/keycodemapdb"]
> > 	path = ui/keycodemapdb
> > 	url = https://gitlab.com/qemu-project/keycodemapdb.git
> > 	recurse = true
> > 
> 
> I just retested and it's not working for me either :(
> I was sure it worked but I guess the testing wasn't done properly.
> Back to the drawing board sorry.

I think the problem is that this setting doesn't apply in the context
of .gitmodules. Various commands take a '--recurse-submodules' parameter,
and like many params this can be set in the .git/config file. The
problem is .git/config isn't a file we can influence automatically,
it is upto the dev to set things for every clone they do :-(

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



  reply	other threads:[~2022-10-07 11:06 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-06 11:39 [PATCH] gitmodules: recurse by default Michael S. Tsirkin
2022-10-06 13:02 ` Peter Maydell
2022-10-06 14:30   ` Michael S. Tsirkin
2022-10-06 15:10 ` Philippe Mathieu-Daudé via
2022-10-06 15:23   ` Peter Maydell
2022-10-06 15:29   ` Michael S. Tsirkin
2022-10-06 18:54 ` Daniel P. Berrangé
2022-10-07  0:24   ` Michael S. Tsirkin
2022-10-07  8:07     ` Daniel P. Berrangé
2022-10-07 10:11       ` Michael S. Tsirkin
2022-10-07 10:45         ` Daniel P. Berrangé [this message]
2022-10-07 11:09           ` Daniel P. Berrangé
2022-10-11 22:32             ` Michael S. Tsirkin
2022-10-12  7:51               ` Daniel P. Berrangé
2022-10-12 11:31                 ` Michael S. Tsirkin

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=Y0ADZAQbjIJMVzXp@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=f4bug@amsat.org \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.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.