80 likes | 144 Views
Branching, Switching and tagging. Francesco Furfari CNR-ISTI Italy. Sandbox Usage 1 for major and minor changes . C1-V1.0.2. C1-V1.2.0. C1-V1.2.0 Validation. C1-V1.2.0 validated. Branch. Merge. Trunk/c2. Sandbox/D1. Tag/c1-V1.0.0. Trunk/c1. Tag/c1-V1.2.0. V1.0.0. V1.0.1. V1.0.2.
E N D
Branching, Switching and tagging Francesco Furfari CNR-ISTI Italy
Sandbox Usage 1for major and minor changes C1-V1.0.2 C1-V1.2.0 C1-V1.2.0 Validation C1-V1.2.0 validated Branch Merge Trunk/c2 Sandbox/D1 Tag/c1-V1.0.0 Trunk/c1 Tag/c1-V1.2.0 V1.0.0 V1.0.1 V1.0.2 V1.2.0 V1.2.1 Released &Tagged Tagged
Developers Local ViewD1 & D2 (Validator) C1-V1.2.0 Validation Switch and test V1.0.2 Artefact version unchanged, always aligned to the trunk V1.0.2 Switch C1-V1.0.2 C1-V1.2.0 Svn:Sandbox/D1 D2 -- local:trunk/c1 D1 -- local:trunk/c1 Svn:Trunk/c1 Svn:Trunk/c2 validated Update Artifact version to 1.2.0 Switch commit V1.0.1 V1.0.2 V1.0.2 V1.2.0 V1.2.0 commits Branch Merge V1.0.1 V1.0.2 V1.2.0 V1.2.1
Sandbox usage 1.aArtefact development shared among several developers C1-V1.0.2 C1-V1.2.0 C1-V1.2.0 Validation C1-V1.2.0 validated Merge Merge Merge Branch Svn:Sandbox/D1 Svn:Trunk/c2 D2 -- local:trunk/c1 Svn: Trunk/c1 V1.0.0 V1.0.1 V1.0.2 V1.0.3 V1.0.4 V1.2.0 V1.2.1 Commit Commit V1.0.3 V1.0.4 Tagged Tag/c1-V1.2.0
Sandbox Usage 2 for bug fixing of released software V1.2.1 V1.2.0 V1.0.0 V1.0.1 V1.0.2 Released &Tagged Tag/c1-V1.0.0-patch-123 Svn: Sandbox/D1 Tag/c1-V1.0.0 Trunk/c2 D1 -- local:trunk/c1 Trunk/c1 Branch Merge or Porting Release Patch &Tag C1-V1.0.0-bug-123 C1-V1.0.0-bug-123 C1-V1.0.0 validated C1-V1.2.0 evaluate & apply Switch Commit Switch V1.2.1 C1-V1.0.0 bug fixed V1.2.1
Sandbox Usage 3 applying external patches V1.0.2 V1.2.0 V1.2.1 V1.2.2 Branch D1 -- local:trunk/c1 Trunk/c1 Svn: Sandbox/D1 C1-V1.2.1-patch-456 C1-V1.2.1-patch-456 validate Merge Switch Switch Commit V1.2.1 Apply patch-456 V1.2.1 V1.2.1
Multi-component changes V1.0.1 V1.1.0 V1.2.1 V1.2.2 V2.0.0 V3.4.0 V3.0.2 Replace Branch Merge Svn:Branches/NewFeature/c2 Svn:Branches/NewFeature/c1 Svn:Trunk/c1 Svn:Trunk/c2 Validate V1.0.1 V2.0.0 V2.0.0 V3.0.2 V3.3.0 V3.4.0 V3.4.0
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.