integrate a distributed revision control tool with Tahoe #663

Closed
opened 2009-03-17 17:11:32 +00:00 by zooko · 2 comments
zooko commented 2009-03-17 17:11:32 +00:00
Owner

(This ticket is a candidate for a Google Summer of Code project. See the GSoCIdeas page.)

If you use a distributed revision control tool such as darcs, git, bzr, hg, or monotone, then you could use Tahoe as a "repository in the cloud" -- a robust, distributed repository which is always available. In addition, Tahoe makes secure sharing easier -- readers of a repository can be sure that new changes came from the authorized writers to that repository. This security guarantee is very strong -- it should hold up even against attackers who can hijack DNS and subvert servers -- but it is also very easy to use -- neither the writers nor the readers need to login to any server or manage any crypto keys.

implementation issues:

If your revision control tool can use HTTP GET to read from a repository, then the read side is trivial -- see for example what happens if you run darcs get --partial <http://testgrid.allmydata.org:3567/uri/URI%3ADIR2-RO%3Avf42lud2e5vvw237c7vyc5lotq%3At2nkfthjj5lhdgqqd4rtweazp3f2kltyhqecwwa2njj7suhjuy3q>.

You can currently use tahoe cp -r or tahoe backup to upload a repository from your local filesystem into Tahoe, which can accomplish the write side as a batch operation.

You can currently use the Tahoe-FUSE interface (#36) for read-only access to a repository. If someone adds working write support to the Tahoe-FUSE interface, then that can be used for the write side in immediate (not batch) operation.

Depending on the details of your revision control tool, those approaches might be completely sufficient. However, there could be interesting performance, security, and sharing improvements with deeper integration into the revision control tool. For example, the aforementioned darcs get command-line will take minutes to complete -- many times longer than darcs get from a traditional centralized repository does.

(This ticket is a candidate for a Google Summer of Code project. See [the GSoCIdeas page](wiki/GSoCIdeas).) If you use a distributed revision control tool such as `darcs`, `git`, `bzr`, `hg`, or `monotone`, then you could use Tahoe as a "repository in the cloud" -- a robust, distributed repository which is always available. In addition, Tahoe makes secure sharing easier -- readers of a repository can be sure that new changes came from the authorized writers to that repository. This security guarantee is very strong -- it should hold up even against attackers who can hijack DNS and subvert servers -- but it is also very easy to use -- neither the writers nor the readers need to login to any server or manage any crypto keys. implementation issues: If your revision control tool can use HTTP GET to read from a repository, then the read side is trivial -- see for example what happens if you run `darcs get --partial <http://testgrid.allmydata.org:3567/uri/URI%3ADIR2-RO%3Avf42lud2e5vvw237c7vyc5lotq%3At2nkfthjj5lhdgqqd4rtweazp3f2kltyhqecwwa2njj7suhjuy3q>`. You can currently use `tahoe cp -r` or `tahoe backup` to upload a repository from your local filesystem into Tahoe, which can accomplish the write side as a batch operation. You can currently use the Tahoe-FUSE interface (#36) for read-only access to a repository. If someone adds working write support to the Tahoe-FUSE interface, then that can be used for the write side in immediate (not batch) operation. Depending on the details of your revision control tool, those approaches might be completely sufficient. However, there could be interesting performance, security, and sharing improvements with deeper integration into the revision control tool. For example, the aforementioned `darcs get` command-line will take minutes to complete -- many times longer than darcs get from a traditional centralized repository does.
tahoe-lafs added the
unknown
major
defect
1.3.0
labels 2009-03-17 17:11:32 +00:00
tahoe-lafs added this to the undecided milestone 2009-03-17 17:11:32 +00:00
tahoe-lafs added
contrib
enhancement
and removed
unknown
defect
labels 2009-03-17 17:12:07 +00:00
zooko commented 2009-03-17 17:24:32 +00:00
Author
Owner

Oh, another feature that you get for free when using your revision control on top of Tahoe is that all of the data is strongly encrypted and is decipherable only to authorized readers. Of course, we in the Open Source/Free Software world like to make our source code globally readable -- Tahoe works fine for that, too.

Oh, another feature that you get for free when using your revision control on top of Tahoe is that all of the data is strongly encrypted and is decipherable only to authorized readers. Of course, we in the Open Source/Free Software world like to make our source code globally readable -- Tahoe works fine for that, too.
zooko commented 2009-08-18 16:05:22 +00:00
Author
Owner

fixed by https://bugs.launchpad.net/allmydata.org/+bug/294709 -- thanks, Nils Durner!

fixed by <https://bugs.launchpad.net/allmydata.org/+bug/294709> -- thanks, Nils Durner!
tahoe-lafs added the
fixed
label 2009-08-18 16:05:22 +00:00
zooko closed this issue 2009-08-18 16:05:22 +00:00
tahoe-lafs added this to the 1.6.0 milestone 2009-10-26 20:37:43 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: tahoe-lafs/trac-2024-07-25#663
No description provided.