Liya Katz & Miron Gofer Parallel Development
Agenda  What is Parallel Development? Solutions: branching models and more DVCS  Use case and demo
What is Parallel Development? Terminology: Codeline Branch Merge Feature Freeze Code Freeze
Branching models files versioning and no branching branch by release branch by task branch by purpose
Files versioning and no branching Managing the history...
Branch by Release Release 1.0 Release 2.0 Release 3.0 Production 1.0 Production 2.0 Production 3.0 Development QA Production Release to QA Development QA Production Release to QA Development QA Production Approved bug fix Merge bug fix to release 2.0 Merge bug fix to release 3.0
Branch by Task Integration branch 1.0 Task 2 Task 1 Task 3 Integration Terminology:   Integration codeline/branch   Integration task + integrator role Deliver Rebase Production 1.0 QA Production
Branch by Purpose DEV Normal Development Feature  Freeze   Bridge Rrelease to QA (Code Feeze) ‏ Release candidate 1.0 Normal Development Testing Production 1.0 Approved bug fix
Additional solutions
Feature toggle
Private branching
DVCS Overview D istributed V ersion C ontrol S ystem D ecentralize
Key concepts Make (record)  the changes and  Share  the changes are distinct operations
Key concepts Peer-to-Peer  approach  (We are equal)
Key concepts Construct  your own  structure  (free as in freedom)
Key concepts Merge is good!!!
Key concepts New Terminology : Checkout, checkin, branch, log  are all local actions. For collaboration we got:  push, pull, clone...
DVCS Overview - cont. Advantages . . . Disadvantages . . . Does it fit?
DVC systems GIT Linux, X.org, Rails. Very fast very powerful. Bazaar Ubuntu Less known Mercurial OpenJDK, OpenSolaris, Mozilla. Better Windows support.
Demo Empower subversion with git private branching
Use case Central SVN repository Use local GIT repository for private branching on developer environment Use git-svn tool to glue
Demo steps Clone repository using command line: $  git svn clone http://dev.tikalk.com/svn/repos_private/trunk/promoted-builds-manual-demo/ -T ""
Demo steps Open eclipse, import the project  and share with git:
Demo steps Make change on the master branch:
Demo steps Create new branch and checkout:
Demo steps Make changes on the new branch and commit:
Demo steps Checkout back to master sync with branch, merge and commit
Demo steps Rebase and commit to SVN from command line: $ git svn rebase $ git svn dcommit See in SVN history:
DEMO
Thank you

Alm tce parallel development

  • 1.
    Liya Katz &Miron Gofer Parallel Development
  • 2.
    Agenda Whatis Parallel Development? Solutions: branching models and more DVCS Use case and demo
  • 3.
    What is ParallelDevelopment? Terminology: Codeline Branch Merge Feature Freeze Code Freeze
  • 4.
    Branching models filesversioning and no branching branch by release branch by task branch by purpose
  • 5.
    Files versioning andno branching Managing the history...
  • 6.
    Branch by ReleaseRelease 1.0 Release 2.0 Release 3.0 Production 1.0 Production 2.0 Production 3.0 Development QA Production Release to QA Development QA Production Release to QA Development QA Production Approved bug fix Merge bug fix to release 2.0 Merge bug fix to release 3.0
  • 7.
    Branch by TaskIntegration branch 1.0 Task 2 Task 1 Task 3 Integration Terminology: Integration codeline/branch Integration task + integrator role Deliver Rebase Production 1.0 QA Production
  • 8.
    Branch by PurposeDEV Normal Development Feature Freeze   Bridge Rrelease to QA (Code Feeze) ‏ Release candidate 1.0 Normal Development Testing Production 1.0 Approved bug fix
  • 9.
  • 10.
  • 11.
  • 12.
    DVCS Overview Distributed V ersion C ontrol S ystem D ecentralize
  • 13.
    Key concepts Make(record) the changes and Share the changes are distinct operations
  • 14.
    Key concepts Peer-to-Peer approach (We are equal)
  • 15.
    Key concepts Construct your own structure (free as in freedom)
  • 16.
  • 17.
    Key concepts NewTerminology : Checkout, checkin, branch, log are all local actions. For collaboration we got: push, pull, clone...
  • 18.
    DVCS Overview -cont. Advantages . . . Disadvantages . . . Does it fit?
  • 19.
    DVC systems GITLinux, X.org, Rails. Very fast very powerful. Bazaar Ubuntu Less known Mercurial OpenJDK, OpenSolaris, Mozilla. Better Windows support.
  • 20.
    Demo Empower subversionwith git private branching
  • 21.
    Use case CentralSVN repository Use local GIT repository for private branching on developer environment Use git-svn tool to glue
  • 22.
    Demo steps Clonerepository using command line: $ git svn clone http://dev.tikalk.com/svn/repos_private/trunk/promoted-builds-manual-demo/ -T ""
  • 23.
    Demo steps Openeclipse, import the project and share with git:
  • 24.
    Demo steps Makechange on the master branch:
  • 25.
    Demo steps Createnew branch and checkout:
  • 26.
    Demo steps Makechanges on the new branch and commit:
  • 27.
    Demo steps Checkoutback to master sync with branch, merge and commit
  • 28.
    Demo steps Rebaseand commit to SVN from command line: $ git svn rebase $ git svn dcommit See in SVN history:
  • 29.
  • 30.