5 ms·
I am coming to think that it's precisely the "distributed" bit that nobody really wants. For example, distributed version control systems are often held up as
by mumblemumble 5y ago
I am coming to think that it's precisely the "distributed" bit that nobody really wants.
For example, distributed version control systems are often held up as an example of some form of precedent for blockchain-type technologies. But I've never actually seen a truly distributed (in the blockchain sense) deployment of Git. It's technically possible, but it just doesn't seem to happen.
Similarly, I'm not sure people actually want immutability. They want the ability to edit history, they just want it to not be an everyday thing. In a discussion about the relative merits of different distributed version control systems, someone invariably points out that the thing Git has that makes it more usable in practice than any of the others is that it allows you to rewrite history. In the repositories I manage, I even mandate it, in the form of requiring people to rebase before merging into the main branch so that we can linearize history. As salty former Mercurial user, I used to do the opposite and ban the practice, until I realized that rebasing and squashing is more practical in the long run. I'm trying to run a software project, not an episode of Hoarders.
- throwawaygh 5y agoGit is used almost exclusively in a centralized fashion. The use patterns really aren't all that different from SVN, even if having a local copy is kinda nice. But, like you said, having a local copy isn't really the same thing as decentralized. "master" is still a thing. More importantly, the next big shift in version control technology is/will be back toward centralization. You already see this with eg Google Docs. Far inferior to Word, but preferred by many because of the free and highly functional live-multi-collaborator-editing feature. Someday we'll look back and wonder why merge hell lasted so long into the age of ubiquitous gigabit internet. Not that there won't sometimes be merges, but far rarer.
- deleted 5y ago[deleted]
- dale_glass 5y agoGit is very much used in a distributed fashion. Eg, on github. Right now, I'm working on one of the forks of a dead commercial project. Our fork in turn has 61 forks right now, some of which may diverge further and have multiple people working on them, which at some point may or not contribute things upstream.
- mumblemumble 5y agoBut not in the blockchain sense. All those forks aren't independently contributing to a single source of truth in a peer-to-peer manner. In practice, those forks generally serve one of two purposes. Either they're for working separately on changes that you intend to submit upstream to the agreed-upon central repository, or you're intending to legitimately fork the project and create your own new central repository that's relatively independent of the original. Despite from the fact that, thanks to our industry's love for overloading technical jargon, we happen to use the word "distributed" to describe both use cases, they're really quite different in practice.
- dale_glass 5y agoThey kind of are. I mean, the hierarchical structure is mostly fictional. In git any fork is as valid as any other. This is very much unlike any SVN setup. Any of those forks could conceivably become the main one, if the former official repo died, or somebody just started developing their fork faster.
- mumblemumble 5y agoThat's what I'm getting at, though. Even though Git does support a non-hierarchical organization structure, nobody actually uses it that way. Almost as if not every tool in search of a problem eventually finds one.
- dale_glass 5y agoBut they do. Not 100% of the time, certainly, but it very much happens. Eg, under SVN, people would check-out our project, do some work and then either need commit rights, or create a patch. Under git, people have full power to clone the entire thing, explore the entire history, rewrite whatever they want to, easily collaborate with other people with the same interests, and then maybe submit it all upstream. So for instance right now in Vircadia we're having a big project of redoing the scripting engine. This work could conceivably take months, and thanks to git it doesn't have to happen in the main repo. It can happen between the people interested in that part of the code, where even several people can collaborate on a gigantic PR that would hopefully get merged in the end. SVN doesn't allow for that kind of workflow. Yes, the high level view is still centralized, but the ability to break away from the centralization to do something big is very helpful and important. Even if it's not the dominant way of working.
- jayd16 5y agoBit of a nitpick but even in a team with a central origin, I think git is still mostly used in a decentralized way. Try to use Perforce on spotty internet vs git. There's a big difference. Merge is a fundamental issue across all source control. Its not going away.
- deleted 5y ago[deleted]
- guenthert 5y ago> You already see this with eg Google Docs. Far inferior to Word, but preferred by many because of the free and highly functional live-multi-collaborator-editing feature. Only for those in (roughly) the same time zone, which appears to be less often the case today. I've seen a lot of different VCS, all the way back to RCS. I don't want to go back to the awful scheme of versioned virtual filesystem like the one of ClearCase. You can pry git from my cold, dead fingers.
- Terretta 5y agoDistributed immutable ledger is astonishingly relevant in a variety of security and financial (and financial security) areas, but good luck explaining to the non-tech execs why they should fund projects using that rather than FOMO on “but blockchain!!!” For purposes of talking w/ execs or boards, there are something like seven yes/no reasonably explainable properties of chains of blocks that toggled some ways give you alt coins and in one particular other way give you a fantastically high performance distributed ledger a trusted authority can keep an eye on — you can have your cake and eat it too if you aren’t being a coin. Businesses often want that outcome, but they verbalize what they want as “bLoCkChAiN!!! to the moon!!!” and it’s tech’s job to say wait, what are you trying to do? Quite probably, they actually could benefit from something like QLDB: https://aws.amazon.com/qldb/ https://aws.amazon.com/qldb/
- mumblemumble 5y ago> Distributed immutable ledger is astonishingly relevant in a variety of security and financial (and financial security) areas I'm not so sure about that. IANAL, but I suspect that, at least under US law, a distributed immutable ledger would actually be illegal in many cases. The entire legal environment is set up around the idea that there is a system of record, and that system of record has a single custodian, and that custodian is not just responsible for tending to it, but also someone to whom you can appeal (or sue) for remediation if something goes wrong. The immutable bit is also often incompatible. There are laws and contracts out there laying out cases where data needs to be deleted - not reverted, not being flagged as no longer relevant, actually deleted - from the record. In the US, the Fair Credit Reporting Act is probably the most familiar example, but there are others. Yes, we can say that it hasn't taken off because people just don't understand it because it's a complex technical topic. But we should also consider the possibility that the business environment in which we are trying to ininuate ourselves is a complex technical topic, too. And also watch out for Chesterton's Fence.
- derefr 5y agoI think you're talking about different use-cases than the person you're replying to. A distributed immutable ledger has many uses other than recording voluntary transactions, or even recording things to do with specific people. For example, such a ledger can be used to create a tamper-proof security-camera footage log. Just hashes of exported video files, locked into a chain at time of export. You can redact the videos themselves (i.e. make all copies of the referenced video unavailable), but you can't change the hash, and so there's no party you can collude with to substitute one video for another. Even if you're a state actor. You either have the videos — which can be proven to be the right videos — or you don't; but you'll never be able to present the wrong videos. Or, in the same vein, a chain-of-custody log for the contents of a safety deposit box at a bank. Any time someone opens the box, an entry is automatically appended to the log saying what authorization (e.g. access card) was used to open the box. Once again, the fact that the log is distributed on a wider multi-party-controlled system, makes it impossible (or at least impractical) for the bank itself to tamper with the logs to steal something from your box. These are "finance" / "security" / "financial security" use-cases. But they're not PII. There's no point at which any of this data would ever legally require redaction or purging, because it doesn't relate to a specific client profile. It relates either to metadata of public-point-of-view sensory data capture; or it relates to employee actions against customer accounts, where the mapping back to an individual isn't given in the public log but rather exists in a private database.
- rektide 5y ago> For example, distributed version control systems are often held up as an example of some form of precedent for blockchain-type technologies. But I've never actually seen a truly distributed (in the blockchain sense) deployment of Git. It's technically possible, but it just doesn't seem to happen. The truth is, git provides only a narrow set of capabilities we use for development. Git being decentralized is insufficient. That is why the world uses github (and to lesser degrees bitbucket & gitlab): they provide the collaborative experience, they provide regulation/control/flow across the distributed systems. There is ongoing & active work to build many of these social protocols ("Pull requests", code comments, issues, &c) in a distributed fashion, under the ForgeFed[1] project. Popular git workspace applications such as Gitea are working towards implementations. It's been long overdue, but we're filling in the gaps, to make a distributed git possible & interesting. Historically, one of the few & only successful models of distributed/decentralized development has been the Linux kernel itself, which has stuck to using patches sent by email to coordinate the distributed work. But that status quo will soon be changing, or at least, there will be other options, than github or email. [1] https://forgefed.peers.community/ https://forgefed.peers.community/
- tim333 5y ago>"distributed" bit that nobody really wants Distributed adds complexity but is pretty much essential for illegal activities which is why it is needed for cryptocurrencies which would otherwise be shut down for not KYCing everything and bittorrent which would be shut for copyright infringement. Otherwise centralized is usually easier.