[Kde-scm-interest] Layout #2 of Git repositories for KDE

Thiago Macieira thiago at kde.org
Mon Nov 5 16:14:16 CET 2007


Em Monday 05 November 2007 15:47:33 Johannes Sixt escreveu:
> I don't know if I understand you correctly. Are you thinking of having a
> project foo/ that will end up as kdelibs/foo/? That should better be a fork
> of kdelibs/ that introduces the new foo/. Or introduce foo/ as a submodule
> of kdelibs/.

Yes, I was thinking of that case. Sometimes you don't know ahead of time where 
your brand-new application will end up.

I would like to avoid introducing submodules inside kde modules (kdelibs, 
kdebase, etc.) because they don't feel like one single repository. In other 
words, either the repository contains code or it contains submodules -- never 
both (except the admin/ import, for KDE 3 history). This also means I don't 
like the plasma svn:external that is in amarok.

[Unless this is changed in Git so that they do. (i.e., git status, git diff, 
git annotate, etc., cross into the submodule as if it were part of the 
supermodule's tree, as well as crossing back out to the supermodule if you're 
inside the submodule)]

> > Actually, come to think of it, none of the supermodules need to have a
> > correct history, even KDE.git. Their only purpose in life is to allow
> > easier checking out of the submodules, as well as to provide a top-level
> > CMakeLists.txt that basically does:
> >
> >       macro_add_optional_directory(*)
> >
> > So that people like me can build a manageable 10 or 15 modules, instead
> > of 150 different applications and libraries.
>
> I tend to disagree: You need supermodules, in particular KDE.git also for
> atomic commits that span modules. E.g. an API change in kdelibs that needs
> to propagate to kdebase etc. You will want to have that even in stable/.

Yes, that's the reason and use of supermodules in Git today, aside from ease 
of checking out.

But that's not what I meant.

My point is that you don't check out KDE.git from KDE 2.x times because that's 
no longer developed. Even if you *did* want to check it out, you'd check out 
from releases/KDE.git, not from stable/KDE.git.

My worry when I raised this issue was that, after the repository got 
moved/renamed, the old commits would break. That will still happen, but it's 
not an issue because you should not be checking out old commits and trying to 
develop from there. 

Worst case scenario is when you branch off a commit that is before a rename: 
you'll have to update the submodule link. In any case, it's no worse than 
Subversion today.

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-scm-interest/attachments/20071105/013c46bc/attachment.pgp 


More information about the Kde-scm-interest mailing list