#663 closed enhancement (fixed)

integrate a distributed revision control tool with Tahoe

Reported by: zooko Owned by:
Priority: major Milestone: 1.6.0
Component: contrib Version: 1.3.0
Keywords: GSoC Cc:
Launchpad Bug:


(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.

Change History (4)

comment:1 Changed at 2009-03-17T17:12:07Z by zooko

  • Component changed from unknown to contrib
  • Keywords GSoC added
  • Owner nobody deleted
  • Type changed from defect to enhancement

comment:2 Changed at 2009-03-17T17:24:32Z by zooko

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.

comment:3 Changed at 2009-08-18T16:05:22Z by zooko

  • Milestone changed from undecided to 1.5.1
  • Resolution set to fixed
  • Status changed from new to closed

comment:4 Changed at 2009-10-26T20:37:43Z by zooko

  • Milestone changed from 1.5.1 to 1.6.0
Note: See TracTickets for help on using tickets.