Upload
rianna-matthis
View
213
Download
0
Embed Size (px)
Citation preview
Branching, Switching and tagging
Francesco FurfariCNR-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
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
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
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
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
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
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.