8
Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Embed Size (px)

Citation preview

Page 1: Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Branching, Switching and tagging

Francesco FurfariCNR-ISTI

Italy

Page 2: Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Trunk/c1

Trunk/c2

Sandbox/D1

V1.0.0

Tag/c1-V1.0.0

V1.0.1 V1.0.2

C1-V1.0.2 C1-V1.2.0

V1.2.0

C1-V1.2.0 Validation C1-V1.2.0 validated

Branch Merge

Tag/c1-V1.2.0

Released &Tagged

V1.2.1

Tagged

Sandbox Usage 1for major and minor changes

Page 3: Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Svn:Trunk/c1

Svn:Trunk/c2

V1.0.1 V1.0.2 V1.2.0

validatedUpdate Artifact version to 1.2.0

Branch

V1.2.1

Merge

Developers Local ViewD1 & D2 (Validator)

D1 -- local:trunk/c1

Artefact version unchanged,always aligned to the trunk

V1.0.2

V1.0.1 V1.0.2 V1.0.2 V1.2.0

C1-V1.2.0 Validation

Switch and test

D2 -- local:trunk/c1 V1.0.2

V1.2.0

Svn:Sandbox/D1 C1-V1.0.2 C1-V1.2.0

commits

Switch commit

Switch

Page 4: Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Svn: Trunk/c1

Svn:Trunk/c2

Svn:Sandbox/D1

V1.0.0 V1.0.1 V1.0.2

C1-V1.0.2 C1-V1.2.0

V1.2.0

C1-V1.2.0 Validation C1-V1.2.0 validated

Branch

Merge

Tag/c1-V1.2.0

V1.2.1

Tagged

Sandbox usage 1.aArtefact development shared among several developers

D2 -- local:trunk/c1 V1.0.3 V1.0.4

V1.0.3 V1.0.4

Merge Merge

Commit Commit

Page 5: Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Trunk/c1

Trunk/c2

Svn: Sandbox/D1

V1.0.0

Tag/c1-V1.0.0

V1.0.1 V1.0.2

C1-V1.0.0-bug-123

V1.2.0

Released &Tagged

V1.2.1

Commit

Sandbox Usage 2 for bug fixing of released software

D1 -- local:trunk/c1 V1.2.1

Switch

V1.2.1C1-V1.0.0 bug fixed

C1-V1.0.0 validatedC1-V1.0.0-bug-123

Tag/c1-V1.0.0-patch-123

Release Patch&Tag

C1-V1.2.0 evaluate & apply

Merge orPorting

Switch

Branch

Page 6: Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Trunk/c1

Svn: Sandbox/D1

V1.0.2

C1-V1.2.1-patch-456

V1.2.0 V1.2.1

Commit

Sandbox Usage 3 applying external patches

D1 -- local:trunk/c1

Branch

V1.2.1Apply patch-456

validateC1-V1.2.1-patch-456

Merge Switch

V1.2.1

Switch

V1.2.2

V1.2.1

Page 7: Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Validate

Multi-component changes

Svn:Trunk/c1

Svn:Trunk/c2

V1.0.1

V3.0.2

Svn:Branches/NewFeature/c1

Svn:Branches/NewFeature/c2

V1.0.1

V3.0.2

V2.0.0

V3.3.0 V3.4.0

Branch

V2.0.0

V3.4.0

V1.1.0 V1.2.1 V1.2.2 V2.0.0

Replace

V3.4.0

Merge

Page 8: Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy

Development options• Each artefact (bundle) should have one developer

– Changes to artefact are accepted and delegated from the main developer (responsible)• Complex artefacts may have several developers who appoint a coordinator

(leader)– Changes must be coordinated in the group and notified (automatically)

• Changes/bug fixes provided by a developers external to the bundle development should be tracked and applied as patches from the developers coordinating the bundle development.

• Changes and release of multiple artefacts should be coordinated and developed in new branches that are merged when the code is ready and validated.

• Sandboxes should be intensively used for each activity that requires testing of the code from third developers

• Alternative implementation of the same artefact should be developed in the sandbox , validated and moved to the trunk with a different name.