Skip to content
This repository has been archived by the owner. It is now read-only.

How do you use IPFS for source code revision control? #83

Closed
ghost opened this issue Dec 17, 2015 · 2 comments
Closed

How do you use IPFS for source code revision control? #83

ghost opened this issue Dec 17, 2015 · 2 comments
Labels

Comments

@ghost
Copy link

ghost commented Dec 17, 2015

I have heard (and generally understand the notion that) ipfs has version control 'built in'. I am wondering if anyone is actually using it for this specifically in the domain of source code revision control.

If so, how are you doing this? What sort of workflow are you employing to use IPFS to manage a revision history for your source code, and how are you ensuring that the whole history is maintained and accessible through IPFS?

When I first ran into IPFS, this was really the first thing I thought of: a dvcs where the continued availability of the code was sort of tied to how many people were interested in it, independent of some centralized host, but possibly backed by one to help maintain an official head commit and work contributions into it.

If an actual project exists that automates this with a specialized command line tool, I would definitely be interested in that too.

Edit I know there are git mirroring/rehosting tools out there, but I am more interested in leveraging ipfs natively as the core mechanism for composing source code revision histories.

@fazo96
Copy link

fazo96 commented Dec 21, 2015

I don't think anyone does it, IPFS is a really great platform to build distributed version control software because it has deduplication built in and immunitability of objects. However, no such version control tool has been built, and I think forking git at the moment to try to get it to use IPFS as storage is way too much work and everyone capable to do that is more busy working on IPFS instead.

To better answer your question, as far as I know no projects exist that use IPFS for version control, except in a very simple way like ipscend.

Maybe someone will build a cool dvcs on top of IPFS, or we will see git working better with it.

About actually building one

You could have each commit be an IPFS object, and reference the previous commit via its IPFS hash. Then, you'd have no way to actually edit commits, just copying old ones and altering them to create new ones. That means that changing one commit also changes every single commit that is further down the dependency tree.

You'd have to use IPNS to reference anything that changes, like repos and branches.

@flyingzumwalt
Copy link
Contributor

flyingzumwalt commented May 23, 2017

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants