Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
MDT/OCL/Dev/EGit
The Eclipse OCL code is maintained in a GIT repository which is used by Clone Repository. This repository is used in a traditional 'client'/'server' fashion, even though GIT treats all users as peers. The definitive state is on the 'server' at git://git.eclipse.org/gitroot/mdt/org.eclipse.ocl.git. Individual committers establish 'client' clones of the 'server' so that for committers, the definitive development stream is at origin/master and each committer's master is a branch of origin/master. A definitive maintenance stream is at for instance origin/R3_1.
The capabilities of EGit are described at EGit/User Guide. The documentation here is complementary, it describes how the committers use EGit to satisfy typical use cases.
Contents
Complete Use Cases
Develop a Non-trivial Change
The normal evolution of the project code involves a non-trivial change that may take a few days or weeks to develop, may need review by another committer and may occur concurrently with some other change.
A Bugzilla describes the intended change and supports communication regarding the progress of the change.
The change is developed in a branch whose name starts with bug/nnnnnn where nnnnnn is the Bugzilla number. A short description may follow.
- Create New Branch or Switch to Local Branch or Switch to Remote Branch
- Develop and test changes
- Review Changes prior to commit
- Commit to Branch
- Push to Upstream to create a backup at Eclipse or to publish to other committers
- Create Patch to attach to Bugzilla for review
- Request Review
- Rebase Branch onto origin/master to synchronize with concurrent development
- Review Changes prior to merge
- Merge Branch onto origin/master to commit to the development stream
- Merge Branch onto Another Branch such as a maintenance branch
- Archive Old Branch to prune the EGit displays
Develop a Trivial Change
Very simple changes that do not require review, or must be performed in a hurry may be performed directly on the local master branch.
- Switch to local/master
- Pull from Upstream to synchronize with development stream
- Develop and test changes
- Review Changes prior to commit
- Commit to local/master
- Merge local/master onto origin/master to commit to the development stream