Ok some deeper explanation is needed.
We use 4 enviroments. Dev -> DevQA -> ProdQA -> Prod
Now our ProdQA box was given away for a month a bit and now we have different versions floating about version wise across 4 servers.
Only 2 devs (me and a senior are allowed to deploy to Prod).
The other devs use Dev and DevQA(even though this is banned in the process).
No one is jotting down there code changes so when we need to deploy items to Prod or ProdQA we have a major problem and a 10 minute deployment becomes a 4 hour process.
Dev process is still being worked on and while the other devs have agreed to follow the processes we do have in place, management isn't attending to the problem children that want to be gung-ho.
A trigger or some sort of auditing tracker will assist me greatly when it comes to deployments.
Hope this clears up a couple of things.
I would suggest that you have separate dev environment for each developer. Or at least each team or each project.
You then also a need a clone environment. Everything that is released to production is released to the clone.
When you start a project, you allocate a dev environment to it. That dev environment is refreshed/rebuilt from the clone. This means that is in sync with production at the start. You then do your stuff and write some code. When done, you put your code back into your source control and you create an installation script. You then refresh your dev environment to get back in sync with production and then you merge your installation and update it so that it still works with production version. Then its ready for user testing. UAT start their testing.
When it gets signed off, you need to do another merge with live and further regression testing. Then you release to ProdQA, and test against live-like data. Ideally, you need to do this in one day. Its the last sanity check. If all is well, you schedule for release.
At release you do your back up of production. Release changes. Do some further tests to make sure you haven't broken production. If all is well. Job done. If not. Restore back up. Cry.
You need more environments