Changes between Version 91 and Version 92 of GSoCIdeas2010

2010-03-16T18:16:30Z (11 years ago)

add DVCS Integration


  • GSoCIdeas2010

    v91 v92  
    1818||[#WebDAV WebDAV]||Medium||[ David-Sarah Hopwood] or any mentor||
    1919||[#DistributedIntroduction Distributed Introduction]||Easy||[ Zooko Wilcox-O'Hearn] or any mentor||
     20||[#DVCSIntegration DVCS Integration]||Medium||[ Jack Lloyd] or any mentor||
    8485Implement a protocol for distributed introduction, thus removing the only remaining Single Point of Failure (SPoF) in the Tahoe-LAFS system. For details see [comment:11:ticket:68 ticket #68] which describes the distributed notification algorithm and points to the relevant source code.
     87= DVCS Integration =
     89Write patches for the [ git] or [ darcs] distributed revision control tool so that it reads and writes directly to a Tahoe-LAFS storage grid instead of its local filesystem. This creates a "revision control repository in the sky"—a repository that is distributed, fault-tolerant, and highly available. It also lends Tahoe-LAFS's unique security and access-control properties to your revision control system—you can share read-only access or read-write access with specific people through Tahoe-LAFS's capability access control system, and you can rely on the integrated digital signatures to verify that you are reading an authorized version of the repository.
     91When Zooko was at the RSA 2010 security conference in March 2010, an employee of the U.S. National Security Agency told him that they were interested in integrating git with Tahoe-LAFS.
     93There is already a simple kind of integration for Tahoe-LAFS with the [ bzr] distributed revision control tool. Bzr can be configured to write its repositories through ftp and Tahoe-LAFS offers and ftp front-end. Here are [ instructions] on how to use the combination of bzr and Tahoe-LAFS. Improving the bzr+Tahoe-LAFS integration to be faster, more flexible, and easier to use would be an alternative to integrating git or darcs.
     95Required skills: for git you need to know some C and understand git's behavior. For darcs you need to know some Haskell and understand darcs's behavior. For bzr you need to know some Python (or actually forget it you can just learn Python as you go because it is so easy) and understand bzr's behavior.