I'm a one-man band and I have a contract with a client to develop and maintain a web-based system that is relied upon. This is the first project of this size and type that I have done for anyone else so I'm still finding my feet a bit in that respect and I'm not sure on any standard practices.
The current situation is that the live system is hosted on a VPS and I have a copy of the system on my local Windows machine with MySQL and PHP installed so that I can develop new features locally and then sync the files with the VPS once I have finished them. This works great, however the complications come when there are any bugs in the system - at which point I'm not sure what to do?
At the minute, I've created another local copy of the system for the purposes of fixing bugs but whilst this enables to sync to the VPS without also syncing any incomplete features, that means that the version of the system which I develop features on still contains the bugs that I have fixed. The only thing I can think of to solve this is to manually copy any changes I made in the bug fixing version, but this seems quite inefficient and impractical once more than one person starts working on a project (which I hope will be the case soon).
I would appreciate if people could share their solutions to situations that may be similar to mine, as I appreciate that no situation is identical and that people may have different solutions to the same problem. For your information as well, I prioritise the fixing of bugs over the implementation of new features.