previous | next
 
home  |  search  |  contact  
 
 
 Introduction 
 BitKeeper Concepts  
 Getting Started  
 Advanced Operations 
      - Resolving Conflicts  
        . When is a Resolve is Needed?  
        . Resolve 
        . Merging Content Conflicts  
      - Specifying Older Revisions 
        . File level 
        . ChangeSet level 
        . Tag level 
      - Tags  
        . Creating a Tag 
        . Updating a Tag 
        . Revert to a tree as of Tag 
      - Branching  
        . When to Create a Clone 
        . How to Enforce Work Flow 
        . Branching and Merging 
      - Revision Ranges 
        . Specifying by Revisions 
        . Specifying by Dates 
        . Revision and Date 
      - Remote repositories 
        . bkd 
        . Sending Changes via Email 
        . Receiving Changes via Email 
 Advanced Topics 
 Reporting and Data Mining  
 Appendix A: Installation 
 Appendix B: Administration 
 Site Map 
    
When to Create a Clone
Branching, should be done when development in a tree starts diverging. Suppose, for example, there is a main line repository called stable. When stable reaches a frozen state near release, only proven code that fixes bugs may be incorporated to that tree, but development must be allowed to continue for both the required bug fixes and for development of the next version of the software. The solution is to create three different repositories for work:
  • stable-1.0: The main line repository for the 1.0 release, where only approved bug fixes are incorporated.
  • bugfixes-1.0: The repository for developers to work on bug fixes that will, when approved, be incorporated to the stable-1.0 release.
  • dev-1.1: The repository to continue development that will become a part of the 1.1 release.

Work Flow
It's fairly common for a software project to branch into stable and bug fixes branches, and the flow of work goes only one way -- work flows to new development branches, but does not travel back from new development branches to old trees. The flow of work for the example above is as follows:

  • bugfixes-1.0: Work will be propagated to stable-1.0 and dev-1.1.
  • stable-1.0: Work, if any, will be propagated to dev-1.1. Normally, once a release has gone into a frozen state, development would occur in bugfixes rather than stable, and then only scrutinized code would be propagated to stable.
  • dev-1.1: Work will never back flow to stable-1.0 nor bugfixes-1.0.

Home    Company    Products    How to Buy    Downloads    Contact Us    Documentation    Support    Site Map

© 1997-2005, BitMover, Inc.