|Download • Git|
|Forums • Blog • Twitter • G+|
Learn how to contribute step by step: Scout/Contributions_for_Scout_Committers
Why do we use Git and Gerrit?
These are the advantages that are relevant to us:
- Easy Local Branching: Creating and using multiple local branches for different features is easy and fast. We can work on more than one feature or bugfix in parallel, if necessary. We can do experiments without any worries to mess up anything important.
- Fast Switching: With Git it is faster to switch between different versions. This is useful to analyze different behaviour between versions and find bugs.
- External Contributions: We can handle contributions from non-committers faster and more easily. Up until now there where only a few contributions from non-committers pushed to gerrit.
- Stability: Git and Gerrit helps to make continuous integration easier, because only contributions that build sucessfully (and unit tests pass) are contributed into the main repository. This makes our environment more stable.
- Integration with Maven/Tycho Build: Git works well with maven/tycho. E.g. we use the git timestamp as a qualifier for the plugin artefacts. Snapshot binaries are only new for new changes.
Git Branching Policy
The following table describes the branching policy used for the Eclipse Scout Git Repositories (http://git.eclipse.org/c/scout/).
|develop||Contains the very latest sources. This branch is used for building the nightly version and contains the development of the newest features that usually will be available to the next stable release.||develop: development for 3.10.0 release (Luna)||http://download.eclipse.org/scout/nightly|
|master||Contains the sources of the latest stable release.||master: stable branch for 3.9 (Kepler) release||http://download.eclipse.org/scout/releases|
|x.y (e.g. 3.8)||Version branches containing the sources for the corresponding Scout version. These branches exist as long as the corresponding version of Scout is still supported and releases containing bugfixes are shipped.||3.8: stable branch for 3.8 (Juno) release||http://download.eclipse.org/scout/x.y|
|release/<release_name>||Contains the development for the corresponding releases. So e.g. a release branch named 3.10.1 contains the fixes for the Luna service release 1. These branches will be merged into the origin branch (the branch from where the release branch has been created) and develop branch as soon as the corresponding release is shipped. Afterwards the branch is deleted and the merge into the origin branch is tagged.||release/3.9.1: bugfix branch for 3.9.1 (Kepler SR1)||http://download.eclipse.org/scout/x.y/x.y.z|
|features/<developer_user_name>/<feature>||Contains developer private feature branches that contain the developments of new features. As soon as the feature development is complete, this branch is merged into the develop branch and the feature branch is deleted. If multiple developers are working on the same feature, the username of the main responsible is used.||-||-|
|hotfix/<hotfix_name>||Contains branches in which hotfixes for a release are developed. After the hotfix development is complete, the hotfix branch is merged into the develop and the origin branch (the branch from where the hotfix branch has been created). Then the origin branch is tagged and the hotfix branch is deleted.||-||-|
Git Repositories and current Branches
- bug 395059: Mylyn integration for gerrit is not working for the current version of gerrit deployed at eclipse.org
- bug 408531: It is not possible to delete and force push branches. Force push is needed for rebase, delete for removing finished feature branches.
- It happened before that our company IP was blocked for ssh connection to git.eclipse.org/dev.eclipse.org. -> Mail or create a bug to webmaster. Remember that ssh is not necessary for fetch.