Jump to: navigation, search

Difference between revisions of "MDT/OCL/Dev/EGit"

< MDT‎ | OCL
(Complete Use Cases)
Line 5: Line 5:
 
== Complete Use Cases ==
 
== Complete Use Cases ==
  
=== Perform a Non-trivial Change ===
+
=== 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 code
+
* 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 04: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.

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.

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.

Partial Use Cases

Clone Repository

Create New Branch

Switch to Local Branch

Switch to Remote Branch

Review Changes

Create Patch

Request Review

Rebase Branch onto origin/master

Merge Branch onto origin/master

Merge Branch onto Another Branch

Archive Old Branch