I'm working on a very large project with three phases of source code.
Development source code: changes rapidly every second, and checked by our QA
Test environment code: released to clients' QA department (released every 2-3 weeks)
Production environment: after confirmed ok by client QA its released to prod. (every few months)
The system (governmental web app) is very large to track changes,bugs and hot fixes, sometimes the Testers could ask for a change, some other times the Production could ask for a hot fix or small update.
The problem is, when the Test or Production request changes, the development code is already changed a lot, and they always warn us they want only that small fix, do not upload anything new with it.
The question, how should i manage the code for the 3 phases, and get back to Test or Production code any tie and fix that small one thing (reflecting the change to the current Development as well)?
Note: making a branch each time is too much, and i don't want the developers to be lost between updating the mainstream, the branch and the Test code!