When you are developing a product that has a live version, yet you wish to perform enhancements to the application. How do you cope with the version control (you do use version control…) of fixes or enhancement to the live version.
The solution here is to use a branch. The branch must be from the labelled point (you do label/checkpoint builds) used for the live build. The trick is to keep the branches as small as possible and keeping as few maintained. It adds complexity to the development task but allows development to continue. Only create the branch at the point that you need to make changes.