Several Apache projects (e.g. ServiceMix, Karaf, Camel) moved from Subversion to Git. Is it time for Sling to move also?
dev@discussions:
- [jira] [Created] (SLING-3987) move from Subversion to Git
- moving sling to git
- [git] Which git system do we want to use?
- [git] Please test sample migrated git projects and repo setup
- [git] Whiteboard migration
Tools and scripts
Some WIP tools can be found at https://svn.apache.org/repos/asf/sling/trunk/tooling/scm/scripts/ .
Can Sling (committers and contributors) benefit from moving to Git?
Pros
- offline support
- cherry picking
- easy to move projects (e.g. between bundles, contrib, whiteboard...)
- adpoting the Github workflow using the Git Dual Master system
- ...
Cons
- not eating our own dog food
- slow for big repositories (many modules)
- tagging is global
- ...
What needs to be prepared for moving to Git?
- repository layout
- release process
- ...
Git at Apache
http://wiki.apache.org/general/GitAtApache
http://www.apache.org/dev/git.html
Repository Layout and Projects (Modules)
There are currently 250 projects (modules) in our repository, counted using the tooling/scm/scripts/gen-repo-candidates.sh
script.
Idea
- one Git repository per project/module (we should keep it that simple - is launchpad really different, a release unit, Justin Edelson?)
- grouping repositories with Google repo, e.g.
core
(bundles
),launchpad
,testing
,samples
,tooling
as needed - using
artifactId
as repository name for artifacts (bundles, plugins, jars, ...) and simple names for grouping (builder/reactor) repositories - using Google repo allows developers to set up their own grouping repositories - even non Sling committers
Grouping repositories (projects/modules)
There are some tools for grouping repositories (projects/modules):
Some posts comparing different tools:
- http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/
- https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/
Pros and Cons
[TODO]