When you think the normal updating mechanism is not working according to your preferences, you can always disable it and instead configure "on commit", "on release" and "on expiry" actions that execute an external script that does exactly what you want.