<p>I think you are looking for using Tahoe-LAFS with git-annex. It seems like your exact use case with the pictures. Also, there is wiki software that runs on tahoe, I don't know if that would combine with git-annex, but you could try.</p>
<div class="gmail_quote">On Feb 15, 2012 1:18 AM, "Johannes Nix" <<a href="mailto:Johannes.Nix@gmx.net">Johannes.Nix@gmx.net</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
I'd like to share a few thoughts and ask what implementations<br>
might exist along these lines. Perhaps this gives a good extension<br>
to Tahoe.<br>
<br>
First, I used git some time and I tried CODA, a distributed<br>
file system which supports a cached disconnected mode.<br>
<br>
I got to the conclusion that versioning and caching are<br>
closely related and both essential. Automatic caching could<br>
be very useful for Tahoe but it can't be solved without<br>
versioning. Git is kind of a distributed file system with<br>
superb versioning and can be used for caching. Its main<br>
disadvantage is that one has to pull the whole repository<br>
at once. CODA has extremely good caching but the versioning<br>
is so unusable and broken that I gave up on it.<br>
<br>
<br>
Importantly, the point is not to re-invent DCVS for<br>
source code; solutions like git are highly optimized and<br>
it would be hard to improve them.<br>
<br>
But I have some use cases in mind which do not fit git<br>
but could match Tahoes' qualities extremely well:<br>
<br>
1) Using a cached copy of some voluminous data on the grid. Say<br>
I am going to travel a few hours by train and I want<br>
to sort and edit some photos which I have on the grid.<br>
For reasons of space and time, I cannot pull my whole<br>
30-GB photo collection, and I need some way to synchronize<br>
my changes afterwards. Git isn't made for such usage.<br>
<br>
<br>
2) Collaborative editing of mixed private/shared data.<br>
Say I am editing a collection of research articles<br>
and want some people to review each chapter.<br>
But because this is valuable unpublished material, I want to<br>
make each chapter only accessible to certain persons<br>
before things go to print. Git is not made for that<br>
- access is all-or-nothing.<br>
<br>
<br>
<br>
3) I think Tahoe can be great for collaborative<br>
editing of distributed hypertexts. Git and other<br>
DCVS are made for a hierarchically organized<br>
monolithic source tree where strict control is a must.<br>
Hypertexts without clear limits cannot be<br>
put into such a repository.<br>
<br>
But hypertexts like Wikipedia or domain-specific wikis<br>
could benefit enormously from a distributed peer-to-peer backend.<br>
In fact, decentralization could solve a lot of problems.<br>
<br>
There is some guy at German CCC, Tim Weber, who started<br>
a project along these lines, called "Levitation",<br>
see <a href="http://scytale.name/blog/2009/11/announcing-levitation" target="_blank">http://scytale.name/blog/2009/11/announcing-levitation</a>.<br>
<br>
It would be great to be able to pull an article collection<br>
from Wikipedia to the smart-phone, read and edit offline some<br>
page or another, and sync changes when the device is<br>
connected again. You see the common points with<br>
use case (1).<br>
<br>
<br>
I think it would not be too difficult to make some Tahoe<br>
commands which do check-out, pull, commit, and push<br>
with semantics similar to Mercurial. The backup command<br>
already implements working versioning and I am sure<br>
some people would be pleased by an easy version retrieval tool.<br>
<br>
The more difficult question is how to scale and<br>
adapt this to large projects and mesh networks which<br>
have a no fixed root directory.<br>
<br>
There are surely a lot of projects I do not even<br>
know about..<br>
<br>
Any hints?<br>
<br>
Johannes<br>
_______________________________________________<br>
tahoe-dev mailing list<br>
<a href="mailto:tahoe-dev@tahoe-lafs.org">tahoe-dev@tahoe-lafs.org</a><br>
<a href="http://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev" target="_blank">http://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev</a><br>
</blockquote></div>