git-annex/doc/bare_repositories.mdwn

49 lines
1.9 KiB
Text
Raw Normal View History

Due to popular demand, git-annex can now be used with bare repositories.
2011-03-04 01:56:03 +00:00
So, for example, you can stash a file away in the origin:
`git annex move mybigfile --to origin`
2011-03-03 19:59:16 +00:00
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..
2011-10-29 23:30:48 +00:00
* Commands that need a work tree, like `git annex add` won't work in a bare
repository, of course.
2013-07-03 18:16:01 +00:00
* However, you can (with recent versions of git-annex) run `git annex copy`,
`git annex get`, and `git annex move` in a bare repository. These behave
as if the `--all` option were used, and just operate on every single
version of every single file that is present in the git repository
history.
2011-11-04 23:19:13 +00:00
***
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:
2012-10-22 17:36:54 +00:00
2012-10-22 17:34:33 +00:00
git init --bare bare-annex.git
2013-09-26 00:24:04 +00:00
cd bare-annex.git && git annex init origin
2011-11-04 23:19:13 +00:00
Now configure the remote and do the initial push:
cd ~/annex
2012-10-22 17:34:33 +00:00
git remote add origin example.com:bare-annex.git
2011-11-04 23:19:13 +00:00
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