[TYPO3-v4] Git submodules or not?

Ernesto Baschny [cron IT] ernst at cron-it.de
Mon Aug 22 09:45:25 CEST 2011


Hi,

I'd like to re-open a discussion which we hold some months back, where
the Core Team decided to go for "submodules" when including external
team projects into the core (i.e Workspaces, DBAL, Linkvalidator, etc).

While it has proven to work, and Olly has made a great job in keeping
all things linked together (thanks!!!) I rather feel that the submodules
are the only one big pain in the a** for all kinds of troubles the
developers are having with our GIT repository: Be it when switching
branches, even when switching their local branches, or when suddenly
having to cope with "untracked modified files", etc.

Before introducing them, Olly made a list of advantages / disadvantages
for the two methods we have at our disposal:

1) Subtree merge
 - there will be one big commit to the Core repository containing
   all changes since the last merge
 - development currently happens in local extensions in typo3conf/ext/
 + by just checking out the Core repository one has everything she
   needs (not further requirement of initializing something)

2) Submodules
 - additional initializations and updates to the submodules are required
   (if not doing this, the Core source will be incomplete)
 - additional documentation is required for init, update, commit hooks
 + makes the life for developers a bit easier since the just work with
   one source directory and git takes care to put the things to the
   accordant repositories and branches there

The bottom line was that Git is "for developers" and they should be able
to handle the additional overhead that Submodules might cause.

After three months of experience gained, I tend to rethink about it, and
consider moving back to Subtree merging after the release of 4.6.0 (and
branching 4.6) which would avoid most of the trouble for the "regular
developer" (which is not even interested in developing in one of the
external projects), but put a bit more overhead for the project leaders
(or maybe on the Release Managers / Team Leader) - at least while we
cannot automate the merges into the core.

What do you think?

Cheers,
Ernesto


More information about the TYPO3-project-v4 mailing list