= Proposed Git Workflow = == Goals == 1. Improve stability of both the server and client software. 2. Lay the foundation for feature branches should we ever decide to use them. == Branches == dev = server development master = server stable dev_client = client development master_client = client stable == Initial state after migration == master forked to dev master forked to dev_client dev_client forked to master_client == Client Development == Bug fixes and new simple features start out in dev_client and are merged to master_client when needed. (if feature branches are used) fork dev_client to client_XXX where XXX is the feature name. Do work in client_XXX until complete. Merge completed feature into dev_client. === Release Process === Dev builds (odd minor version) are built out of the dev_client branch. Tags (boinc_client_release_X_XX_XX) are created when the build number is incremented. Release builds (even minor version) are built out of the master_client branch. Tags (boinc_client_release_X_XX_XX) are created when the build number is incremented. master_client is forked to boinc_client_release_X_XX when a new dev_client release is considered stable. Any future bug fixes for the X_XX release are handled in its branch. Mass merge of outstading commits from dev_client to master_client. Increment minor version number. == Current Unknowns == Can git merge a 'lib' change from dev to dev_client? How about the other way?