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.
Difference between revisions of "MDT/OCL/Dev/EGit"
(→Complete Use Cases) |
|||
Line 5: | Line 5: | ||
== Complete Use Cases == | == 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. | 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. | ||
Line 14: | Line 14: | ||
* [[#Create New Branch | Create New Branch]] or [[#Switch to Local Branch | Switch to Local Branch]] or [[#Switch to Remote Branch | Switch to Remote Branch]] | * [[#Create New Branch | Create New Branch]] or [[#Switch to Local Branch | Switch to Local Branch]] or [[#Switch to Remote Branch | Switch to Remote Branch]] | ||
− | * Develop and test | + | * Develop and test changes |
* [[#Review Changes | Review Changes]] prior to commit | * [[#Review Changes | Review Changes]] prior to commit | ||
− | * [[#Commit to Branch | Commit to Branch]] | + | * [[#Commit to Branch | Commit to Branch]] |
− | * [[#Create Patch | Create Patch]] | + | * [[#Push to Upstream | Push to Upstream]] to create a backup at Eclipse or to publish to other committers |
+ | * [[#Create Patch | Create Patch]] to attach to Bugzilla for review | ||
* [[#Request Review | Request Review]] | * [[#Request Review | Request Review]] | ||
* [[#Rebase Branch onto origin/master | Rebase Branch onto '''origin/master''']] to synchronize with concurrent development | * [[#Rebase Branch onto origin/master | Rebase Branch onto '''origin/master''']] to synchronize with concurrent development | ||
* [[#Review Changes | Review Changes]] prior to merge | * [[#Review Changes | Review Changes]] prior to merge | ||
− | * [[#Merge Branch onto origin/master | Merge Branch onto '''origin/master''']] | + | * [[#Merge Branch onto origin/master | Merge Branch onto '''origin/master''']] to commit to the development stream |
* [[#Merge Branch onto Another Branch | Merge Branch onto Another Branch]] such as a maintenance branch | * [[#Merge Branch onto Another Branch | Merge Branch onto Another Branch]] such as a maintenance branch | ||
* [[#Archive Old Branch | Archive Old Branch]] to prune the EGit displays | * [[#Archive Old 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| Switch to local/'''master''']] | ||
+ | * [[#Pull from Upstream | Pull from Upstream]] to synchronize with development stream | ||
+ | * Develop and test changes | ||
+ | * [[#Review Changes | Review Changes]] prior to commit | ||
+ | * [[#Commit to Branch | Commit to local/'''master''']] | ||
+ | * [[#Merge Branch onto origin/master | Merge local/'''master''' onto '''origin/master''']] to commit to the development stream | ||
== Partial Use Cases == | == Partial Use Cases == |
Revision as of 05:15, 29 July 2011
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