[Kde-scm-interest] Layout of the Git repositories for KDE (proposal #2)
Thiago Macieira
thiago at kde.org
Mon Nov 5 16:00:43 CET 2007
After realising that we don't have to keep the history of the supermodules, I
came up with a different idea. Here's it:
projects/, users/, unmaintaned/, other/, releases/
unchanged from the previous proposal
stable/
kdelibs.git
kdepimlibs.git
kdebase.git
[...]
strigi.git
koffice.git
amarok.git
qca.git
konversation.git
qt-copy.git
[...]
l10n/ [could also be nested inside stable/]
af.git
ar.git
be.git
[..]
meta/
all.git -- matches subversion's trunk
kdesupport.git
KDE.git
kdereview.git
extragear.git
extragear-libs.git
extragear-base.git
extragear-multimedia.git
extragear-network.git
playground-libs.git
playground-base.git
playground-nonkde.git
[...]
The idea here is that stable/ is a *flat* tree with repositories. It can be a
list as long as http://git.kernel.org. It doesn't really matter. Technically,
the same layout of stable/ could be applied to releases/.
The important thing is that the organisation of KDE is reflected in the meta
repositories -- i.e, the supermodules. We'd expect people to check out the
meta repositories if they're interested in building KDE in general. If they
are contributors to one or just a few modules, they can check out what they
want exactly.
However, our replacement for websvn shouldn't be a gitweb with the entire list
of repositories, like git.kernel.org. That's unreadable. We should present
the user the all.git repository and then follow submodule links.
Advantages of this model are:
- all.git can link into both stable/ and meta/:
submodule "KDE" points to meta/KDE.git
submodule "koffice" or "qt-copy" points to stable/$1.git
- in fact, we don't *necessarily* need any of the other submodules. They're
there only to avoid imposing the tree on everyone.
- an application progressing from playground, through kdereview, to
extragear, needs only a simple adjustment in the source and target meta
repositories.
- no one said that submodule links have to point to the KDE server: we can
have an application for review in kdereview being hosted somewhere else,
which will be imported only when it's passed the review stage.
- by the same token, the submodule link in kdereview can be pointing to
projects/, in the case of a new application.
Taking the case of a module that got dropped (kdetoys):
- it existed as stable/kdetoys.git
- meta/KDE.git pointed to it
- it got released, so a new repository was created in releases/KDE/kdetoys
- it got dropped:
* all of its content was imported somewhere else
unmaintained applications went to unmaintained/appname.git
maintained applications went to stable/appname.git and a link was set up
from the proper meta/extragear-*.git repository
* any alternate links were removed
* meta/KDE.git's submodule link was removed
* stable/kdetoys.git was removed
- when the next release of KDE is tagged, the releases/KDE.git supermodule
will not contain the submodule link
- but releases/KDE/kdetoys.git will exist ad eternam
Taking the case of an application (app) that got dropped but existed in
extragear/foo:
- it existed as part of stable/app.git
- meta/extragear-foo.git pointed to it
- it got released, so a new repository was created in releases/app.git
- it got dropped:
* the link in meta/extragear-foo.git was removed
* the repository stable/app.git is moved to unmaintained/app.git
- but releases/app.git will exist ad eternam
Taking the case of an application (app) that got dropped from a KDE module
(kdemodule):
- it existed as part of stable/kdemodule.git
- it was released, as part of releases/KDE/kdemodule.git
- it got dropped:
* its content was copied (with history) to unmaintained/app.git [1]
* its directory in stable/kdemodule.git was removed
- the next release KDE will no longer contain the subdirectory
Note 1: if it were possible to have a submodule link to a subdirectory (i.e.,
partial checkout), all you would need is a single file in
unmaintained/app.git. No need to duplicate the objects.
--
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/88fb45e3/attachment-0001.pgp
More information about the Kde-scm-interest
mailing list