[Spice-devel] Survey of repository preferences

msuchanek msuchanek at suse.de
Fri Jul 28 10:33:49 UTC 2017


On Fri, 28 Jul 2017 09:15:46 +0200
Christophe de Dinechin <dinechin at redhat.com> wrote:

> > On 27 Jul 2017, at 17:07, Marc-André Lureau
> > <marcandre.lureau at redhat.com> wrote:

> > 
> > - Create top-level repository with all others repositories as
> > submodules (if we use 'spice-server', that one would be called
> > 'spice') *
> > 
> > Isn't this already the case? https://cgit.freedesktop.org/spice/  
> 
> If that’s the case, it’s cool. But it looks like a group of
> repositories in freedesktop, more than a repository with submodules.
> What is the git clone command to clone that top-level repo?
> 
> Having a top-level repository makes work on branches that impact
> multiple components easier. Case in point today: streaming impacts
> server, protocol, agent, client, etc. So being able to easily switch
> to the “stream” branch and update protocol, agent, client and server
> in one command (ok, two, git checkout following by git submodule
> update) is useful.
> 
> > 
> > How you really mean "git submodules".. Eh, what's the point? Sounds
> > very wrong and useless to me, it will be constantly outdated..
> > Write a script instead?  
> 
> What I really mean is something like this:
> https://gitlab.com/c3d/spice. I did that quickly, but ultimately, I’d
> like to have READMEs and global build scripts, to put spice-space
> repositories under “docs”, that kind of things.
> 
> 
> > 
> > - Make spice-protocol a submodule of modules that use it 
> > 
> > We have been there before with spice-gtk/spice-common, and it was
> > reverted.  
> 
> But spice-common is still a submodule, so I don’t understand why you
> bring it up. Unless you are talking about removal of spice-protocol
> in spice 0.12.6 ? If that’s the case, I don’t see much of a
> discussion around
> https://lists.freedesktop.org/archives/spice-devel/2015-August/021312.html,
> just the justification “it’s stable, so we don’t need to bundle it”.
> I looked in the mails for the three months prior to that looking for
> clues as to why submodules were such a problem, didn’t find any.

So I will list some.

- git does not automagically clone submodules. So the instructions on
  gitweb for cloning are wrong for repositories with submodules. People
  sometimes even forget to mention the submodules in README/INSTALL
  files 

- git does not automatically update submodules so they get outdated
  unless you mind to update them by hand or create an alias

- git does not automatically push to submodules so they get out of sync
  unless you mind to push them by hand or create an alias/script

- git does not archive submodules so creating a snapshot/release
  tarball of a repository with submodules is a nigtmare

Until repositories with submodules are first class citizens with all
the support plain repositories get in git I am strongly against
submodules.

> 
> > The main issue was that every project ended-up bundling
> > spice-protocol.  
> 
> Well, that’s sort of the point of submodules. I don’t see how this is
> a problem.
> 
> > (and others keep complaining about various submodules issues)  
> 
> Let me guess: dangling SHA1 because people kept forgetting to push
> changes to the submodule? Hmmm, but if the module is stable, that
> should practically never happen.
> 
> > Since spice-protocol is very stable, it's actually best to keep it
> > standalone.  
> 
> From a git perspective, this sentence makes no sense whatsoever. Most
> submodule-related issues tend to occur with active submodules, not
> with stable ones.

That goes both ways - if the modules are stable you can as well
unbundle them. For the rare cases you need to change all at once you
can create a separate checkout/install in a prefix.

Thanks

Michal


More information about the Spice-devel mailing list