Due to popular demand, git-annex can now be used with bare repositories.
So, for example, you can stash a file away in the origin:
git annex move mybigfile --to origin
Of course, for that to work, the bare repository has to be on a system with git-annex-shell installed. If "origin" is on GitWeb, you still can't use git-annex to store stuff there.
It took a while, but bare repositories are now supported exactly as well as non-bare repositories. Except for these caveats:
git annex fsck
works in a bare repository, but does not display warnings about insufficient copies. To get those warnings, just run it in one of the non-bare checkouts.git annex unused
in a bare repository only knows about keys used in branches that have been pushed to the bare repository. So use it with care..- Commands that need a work tree, like
git annex add
won't work in a bare repository, of course.
Here is a quick example of how to set this up, using origin
as the remote name, and assuming ~/annex
contains an annex:
On the server:
mkdir bare-annex
cd bare-annex
git init --bare
git annex init origin
Now configure the remote and do the initial push:
cd ~/annex
git remote add origin example.com:bare-annex
git push origin master git-annex
Now git annex status
should show the configured bare remote. If it does not, you may have to pull from the remote first (older versions of git-annex
)
If you wish to configure git such that you can push/pull without arguments, set the upstream branch:
git branch master --set-upstream origin/master