Understanding our workflow

The general workflow for developing our application is as follows:

  1. Pull down the latest version of the master branch.
  2. Pick a feature to implement from our requirements list.
  3. Create a topic branch to keep our changes isolated.
  4. Write tests that describe the behavior desired by our feature.
  5. Develop the code until it passes all the tests.
  6. Commit and push the code into the remote repository.
  7. Pull down the latest version of the master branch and merge it with our topic branch.
  8. Run the test suite to ensure that everything still works.
  9. Merge the code back with the master branch.
  10. Commit and push the code to the remote repository.

The previous list should give you a rough idea of what is involved in a typical software project involving multiple developers. The use of topic branches ensures that our work in progress won't affect other developers (called breaking the build) until we've confirmed that our code has passed all the tests and resolved any conflicts by merging in the latest stable code from the master branch.

The practical upside of this methodology is that it allows bug fixes or work from another developer to be added to the project at any time without us having to worry about incomplete code polluting the build. This also gives us the ability to deploy production from a stable code base.

In practice, a lot of projects will also have a production branch (or tagged release) that contains a copy of the code currently running in production. This is primarily in case of a server failure so that the application can be restored without having to worry about new features being released ahead of schedule, and secondly so that if a new deploy introduces bugs, it can easily be rolled back.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.91.44