This commit is contained in:
https://www.google.com/accounts/o8/id?id=AItOawlrnOT_XLcNNtmIwVdAJCJYu1BwAAOYtBI 2011-12-22 19:21:50 +00:00 committed by admin
parent 30cf6ce81c
commit 1071a3cf02

View file

@ -0,0 +1,48 @@
I have two repos, using SHA1 backend and both using git.
The first one is a laptop, the second one is a usb drive.
When I drop a file on the laptop repo, the file is not available on that repo until I run *git annex get*
But when the usb drive is plugged in the file is actually available.
How about adding a feature to link some/all files to the remote repo?
e.g.
We have *railscasts/196-nested-model-form-part-1.mp4* file added to git, and only available on the usb drive:
$ git annex whereis 196-nested-model-form-part-1.mp4
whereis 196-nested-model-form-part-1.mp4 (1 copy)
a7b7d7a4-2a8a-11e1-aebc-d3c589296e81 -- origin (Portable usb drive)
I can see the link with:
$ cd railscasts
$ ls -ls 196*
8 lrwxr-xr-x 1 framallo staff 193 Dec 20 05:49 196-nested-model-form-part-1.mp4 -> ../.git/annex/objects/Wz/6P/SHA256-s16898930--43679c67cd968243f58f8f7fb30690b5f3f067574e318d609a01613a2a14351e/SHA256-s16898930--43679c67cd968243f58f8f7fb30690b5f3f067574e318d609a01613a2a14351e
I save this in a variable just to make the example more clear:
ID=".git/annex/objects/Wz/6P/SHA256-s16898930--43679c67cd968243f58f8f7fb30690b5f3f067574e318d609a01613a2a14351e/SHA256-s16898930--43679c67cd968243f58f8f7fb30690b5f3f067574e318d609a01613a2a14351e"
The file doesn't exist on the local repo:
$ ls ../$ID
ls: ../$ID: No such file or directory
however I can create a link to access that file on the remote repo.
First I create a needed dir:
$ mkdir ../.git/annex/objects/Wz/6P/SHA256-s16898930--43679c67cd968243f58f8f7fb30690b5f3f067574e318d609a01613a2a14351e/
Then I link to the remote file:
$ ln -s /mnt/usb_drive/repo_folder/$ID ../$ID
now I can open the file in the laptop repo.
I think it could be easy to implement. Maybe It's a naive approach, but looks apealing.
Checking if it's a real file or a link shouldn't impact on performance.
The limitation is that it would work only with remote repos on local dirs
Also allows you to have one directory structure like AFS or other distributed FS. If the file is not local I go to the remote server.
Which is great for apps like Picasa, Itunes, and friends that depends on the file location.