Question
Can git-annex run passively with an existing repo?
Scenario
We have an existing web application with large binary assets spread throughout modules in the repo. The project is in constant development with weekly deploys to production and there are many developers working on the project.
Goal
We need to maintain the directory structure for these assets without actually committing large binaries to the main remote (hosted on GitHub). I need a solution that has a low barrier of entry when on-boarding new developers. I was thinking maybe a script the is executed on every commit that would filter binaries files based on extensions and commit them to the git-annex remote instead. We are flexible on the type of remote storage type (SSH, S3, etc)
Notes
I have gone through the last couple months of forum posts and done a bit of Googling but have come up empty. If anyone can point me in the right direction that would be great. Thanks!
I'm trying to wrap my head around a similar situation. I've tested this by git cloning my repo; the symlinks are copied, and end up broken because the annex directory under .git doesn't exist in the new repo.
So to be specific: can I conclude that when I use git to copy my repo, as long as I don't explicitly use git-annex in the process, I end up with a 'bare' git repo and I don't have to worry about my annexed files coming along?
Also: anyone know of anything that would be different about using git-svn? (i.e. git svn dcommit to push my changes to an svn repo)?
I'm trying to find a way to prevent developers from adding certain file types to the main repo. Is there something like a pre-add hook that could be used?
I found this in another forum but I'm not sure how it was intended to be implemented.
http://git-annex.branchable.com/forum/Let_watch_selectively_annex_files/
I think the most useful thing for people in this thread to know about is replacing Sparkleshare or dvcs-autosync with the assistant.
This doesn't solve it at the command line, where you still need to choose between git add and git annex add, but you can use git annex watch to automatically commit small files to git, and large files to the git annex.
This is what I ended up doing.
https://gist.github.com/ifnull/5761255
Basically you just add the extensions of the files you want to exclude to .gitignore_large_binaries and run "git a ." instead of "git add ."
@Torkaly just
git pull
as usual, and then rungit annex merge
to auto-merge the git-anne branches. Thengit push origin git-annex
to push the git-annex branch.