On Wednesday 28 September 2016 22:34:48 Stefan Seifert wrote: > discussed at the Sling Committer Round Table @ adaptTo() 2016 > > we discussed again the long-debate topic moving from svn to git. no commiter > hat and objection that moving to git creates a real problem. all agreed it > would be nice to move to git. > > aspects that where discussed: > > - every module should get it's own git project > - including special cases where a module is only a integration test > project - this ensures thare is only one "releaseable" artefact per git > repository - and git branching/tagging works as expected > - most sling modules are quite independent anyway > > - we need a replacement for the reactor poms > - to build groups of related projects, e.g. sling distribution, sling > models, testing mocks etc. - and to build all sling sources together > - goal is to have an additional git project for each reactor pom/suitable > grouping of git projects - as multi repo tooling support e.g. google repo > [1] or gitslave [2] could be used - which solution is chosen is not > important for the first step and the initial migration - we can solve this > late, it's mainly for convenience > > - this apporach results in a HUGE number of git repos - perhaps 300-350 > including reactor poms - because sling is so modular, and has so many > bundles already > > - in the apache github mirror there is only one organization "apache" > - all 350 sling projects would be part of this main organization, together > with all other apache git projects that are already listed there - other > projects like commons, cordova, couchdb are examples haven already a lot of > individual git repos - asf currently does not allow apache projects to > create their own github organizsation, mainly due to infra restrictions > > - name pattern for the git repository should be something like > "sling-<artifactId>" - we drop the folder grouping from svn today in > "extensions", "servlets", "commons" etc. only the hierarchy of artifactId > is relevant. - with the prefix "sling-" they > - question: how are "contrib" and "samples" repos marked? by another > prefix like "sling-contrib-" and "sling-samples"? > > - no "self-service" for creating git repos > - a big problem ist hat asf infra currently does not provide a > "self-service" for creating new asf git projects - whenever a new sling > module is created a ticket a INFRA is needed to create it, process is > blocked until the involved manual steps are completed - perhaps we can talk > to infra providing a better solution here, pointing at the 350 git repos we > already need only for the start - if this is not solved just creating a new > project/module is more complicated than required > > - only one git repo for contrib and samples? > - we briefly discussed to use only one big repo for contrib and samples as > a workaround fort the "no self-service" problem, it would then be easy to > create new modules at least there - but this is perhaps not a good > solution, because it again creates all problems that arise when multiple > releasible artifacts are put together in one git repo - and it would make > it harder to move something from contrib to "full supported"
I really prefer the simple rule "one module : one repo". You should be able to start new modules/repos anywhere and later make them an official ASF/Sling master repo. > - committer whiteboards > - we also need a solution for the comitter whiteboards > - they should be cleaned up before migration leaving only what is still > relevant Per committer whiteboards can easily moved to personal repos on GitHub, Bitbucket or whatever. > - migration process > - the migration process has to be fully scripted, and tested several time > in a "lab environment" - we should avoid migration approached that need > restructuring the svn hierarchy before migration (e.g. "flat list of all > modules"), because this make impact the migration of svn history to the > individual git repos - we may need to write our own migration script > handling the specifics of the current svn folder structure and creating the > full list of individual git repos locally from it (first migrate to a > single git repo and then splitting it up preserving history for each > modules folder). those local created git repos can then be pushed to the > individual asf git repos. > > - contact infra > - before we take further steps we should ask infra for it's opinion > - e.g. by creating a jira ticket and describing the planned steps, and > that this would result in a huge number of repos https://issues.apache.org/jira/browse/SLING-3987 https://cwiki.apache.org/confluence/display/SLING/Move+from+Subversion+to+Git Regards, O. > stefan > > [1] https://code.google.com/p/git-repo/ > [2] http://gitslave.sourceforge.net/