Recent comments posted to this site:

Here's another handy command-line which annexes all files in repo B which have already been annexed in repo A:

git status --porcelain | sed -n '/^ T /{s///;p}' | xargs git annex add

The 'T' outputted by git status for these files indicates a type change: it's a symlink to the annex in repo A, but a normal file in repo B.

Comment by http://adamspiers.myopenid.com/ Thu Mar 29 21:41:54 2012
You did the right thing, although just checking out the ghc-7.0 branch will avoid merge conflicts. I am trying to keep it fairly close to up-to-date.
Comment by http://joey.kitenet.net/ Wed Mar 28 19:18:58 2012

The Haskell Platform installer for OSX uses GHC 7.0.4, which doesn't seem able to support the current version of git-annex.

Cabal throws a very cryptic error about not being able to use the proper base package.

I was able to install it by

  1. cloning the repo
  2. merging the ghc7.0 branch
  3. resolving merge conflicts in git-annex.cabal
  4. cabal install git-annex.cabal

(Note I also tried this with homebrew and had similar results)

Hmm, ok, solved. I'm using zsh, which is a little different: .zshrc is only read for interactive shells, so ssh mybox 'echo $PATH' displayed /usr/bin:/bin:/usr/sbin:/sbin. Using .zshenv, which is used even for non-interactive shells, did the trick. Thanks!
Comment by http://schnouki.net/ Fri Mar 23 13:27:12 2012

It doesn't need to be installed into the system PATH; just the user PATH. Which you should be able to control.

Exactly how to do this surely varies, but here I have a ~/.bashrc containing PATH=$HOME/bin:$PATH; export PATH and I keep git-annex-shell in bin and it's available to eg "ssh mybox git-annex-shell"

Comment by http://joey.kitenet.net/ Thu Mar 22 22:26:02 2012
Nevermind, found it. (git-annex 0.08)
Ah, OK. Is there a configuration step to set this up, or is this included magic in a new enough git-annex client?

Suppose you do that to repos A and B. Now, in A, you git annex drop a file that is only present in those repositories. A checks B to make sure it still has a copy of the file. It sees the (same) file there, so assumes it's safe to drop. The file is removed from A, also removing it from B, and losing data.

It is possible to configure A and B to mutually distrust one-another and avoid this problem, but there will be other problems too.

Instead, git-annex supports using cp --reflink=auto, which on filesystems supporting Copy On Write (eg, btrfs), avoids duplicating contents when A and B are on the same filesystem.

Comment by http://joey.kitenet.net/ Mon Mar 19 18:23:13 2012

I've made git-annex-shell run the git hooks/annex-content after content is received or dropped.

Note that the clients need to be running at least git-annex version 3.20120227 , which runs git-annex-shell commit, which runs the hook.

Comment by http://joey.kitenet.net/ Wed Mar 14 16:23:25 2012

windows support has everything I know about making a windows port. This badly needs someone who understand Windows to dive into it. The question of how to create a symbolic link (or the relevant Windows equivilant) from haskell on Windows is a good starting point..

Comment by http://joey.kitenet.net/ Mon Mar 12 06:43:02 2012
Comments on this page are closed.