Maintaining Two Separate Software Versions From the Same Codebase in Version Control
        Posted  
        
            by 
                Joseph
            
        on Programmers
        
        See other posts from Programmers
        
            or by Joseph
        
        
        
        Published on 2014-06-11T03:23:29Z
        Indexed on 
            2014/06/11
            3:46 UTC
        
        
        Read the original article
        Hit count: 320
        
version-control
|Workflows
Let's say that I am writing two different versions of the same software/program/app/script and storing them under version control. The first version is a free "Basic" version, while the second is a paid "Premium" version that takes the codebase of the free version and expands upon it with a few extra value-added features. Any new patches, fixes, or features need to find their way into both versions.
I am currently considering using master and develop branches for the main codebase (free version) along side master-premium and develop-premium branches for the paid version. When a change is made to the free version and merged to the master branch (after thorough testing on develop of course), it gets copied over to the develop-premium branch via the cherry-pick command for more testing and then merged into master-premium.
Is this the best workflow to handle this situation? Are there any potential problems, caveats, or pitfalls to be aware of? Is there a better branching strategy than what I have already come up with?
Your feedback is highly appreciated!
P.S. This is for a PHP script stored in Git, but the answers should apply to any language or VCS.
© Programmers or respective owner