Remote git refs always require a git fetch, because the remote may move around where the ref points.
Tests are added for UPDATE_COMMAND to ensure it is working properly. Testing infrastructure is added along with tests for Git, but tests for other version control systems could easily be added in the future.