integrate a distributed revision control tool with Tahoe #663
Labels
No labels
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: tahoe-lafs/trac-2024-07-25#663
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
(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
, ormonotone
, 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
ortahoe 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.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.
fixed by https://bugs.launchpad.net/allmydata.org/+bug/294709 -- thanks, Nils Durner!