I don't understand this logic, I think the full ref for the remote tracking branch can be completely determined from the name of the remote branch and the pull configuration. Why should we need to observe which branch gets updated ?