> PS. Something that really got me the other day is the inability to just
> export a single directory (eg. examples) from the remote git repo
git does NOT support sparse checkout. Simply because git is repo oriented vs
SVN is file oriented.
I've summed up quite a few aspects in a very old post when we introduced GIT at
the ASF [1][2].
> I really like the 'Feature Branch Workflow', but if we cannot
> use it due to Apache restrictions that would be huge minus for me
That has nothing to do with ASF restrictions.
Just look at Linux. It has no cannonical repo as we do technical. But it still
has one socially at the end. And to this repo only Linus can push. Not 30
people, not 5, just Linus. And thus he can also easily remove 'dead' branches
and do other cleanup tasks. But really consider one thing: you cannot 'delete'
branches from a downstream clone. E.g. if we have a feature branch blaBlub at
our cannonical repo then it will get pulled over to github.com/apache/tomee.
And even if you delete this blaBlub branch @ASF it will NOT get removed from
our github mirror nor anywhere else!
The workflow as described by Atlassian really works great for companies. But it
totalls sucks for OSS projects (in general, that's not even ASF related).
In addition we (ASF) decided to prevent history rewrite. This has multiple
reasons. One is e.g. that we must have a strong code provenance to guard
ourselves legally against copyright infringement claims. Thus we decided to
technically make sure that history rewrite is forbidden.
> Another topic but wondered since years why we don't hack
> maven release plugin to support it?
We have added support for GIT in maven-release-plugin a long time ago.
We should make sure to have the following config settings set though:
<pushChanges>false</pushChanges>
<localCheckout>true</localCheckout>
> AFAIK we should create submodules for such things - didnt use it
> "for real" so no idea it is good or bad in practise.
Last time I checked they totally sucked.
It's e.g not possible to do a maven release over multiple submodules
You should really take a look how we do it over at DeltaSpike [3]. It works
pretty fine imo.
LieGrue,
strub
[1] http://wiki.apache.org/couchdb/Git_At_Apache_Guide
[2] http://wiki.apache.org/couchdb/SVNvsGIT
[3] https://deltaspike.apache.org/suggested-git-workflows.html