This is meant to be called from git's post-receive hook. gitannexinit automatically creates a
post-receive hook using this.
When a repository is configured with receive.denyCurrentBranch=updateInstead, pushes to the repository
update its work tree. However, that does not work for repositories that have an adjusted branch checked
out. The hook updates the work tree when run in such a repository, the same as running git-annexmerge
would.
When a repository is configured to proxy to a special remote with exporttree=yes, and the configured
remote.name.annex-tracking-branch is received, the hook handles updating the tree exported to the special
remote.