10 ms·
Yeah this irony is not lost on me. But in both cases, the companies acted in self interest. Neither had the guts to walk away from their existing revenue stre
by luckydude 10y ago
Yeah this irony is not lost on me. But in both cases, the companies acted in self interest. Neither had the guts to walk away from their existing revenue stream. It's hard to say what would have happened.
It's been an interesting ride and if nothing else, BK was the inspiration for Git and Hg, that's a contribution to the field. And maybe, just maybe, people will look at the SCCS weave and realize that Tichy pulled the wool over our eyes. SCCS is profoundly better.
- qwertyuiop924 10y agoI though SCCS had the same problems as RCS. What did it do differently?
- luckydude 10y agoRCS is patch based, the most recent version is kept in clear text and the previous version is stored as a reverse patch and so on back to the first version. So getting the most recent version could be fast (it isn't) but the farther back you go in history the more time it takes. And branches are even worse, you have to patch backwards to the branch point and then forwards to the tip of the branch. SCCS is a "weave". The time to get the tip is the same as the time to get the first version or any version. The file format looks like ^AI 1 this is the first line in the first version. ^AE 1 That's "insert in version 1" data "end of insert for version one". Now lets say you added another line in version 2: ^AI 1 this is the first line in the first version. ^AE 1 ^AI 2 this is the line that was added in the second version ^AE 2 So how do you get a particular version? You build up the set of versions that are in that version. In version 1, that's just "1", in version 2, that's "1, 2". So if you wanted to get version 1 you sweep through the file and print anything that's in your set. So you print the first line, get to the ^AI 2 and look to see if that's in your set, it isn't, so you skip until you get to the ^AE 2. So any version is the same time. And that time is fast, the largest file in our source base is slib.c, 18K lines, checks out in 20 milliseconds.
- qwertyuiop924 10y agoThat actually is pretty neat
- clacke2 10y agoAha, so that's where bzr got it from. :-)
- luckydude 10y agobzr got more than that from BK, it got one of my favorite things, per-file checkin comments. I liken those to regression tests, when you start out you don't really value them but over time the value builds up. The fact that Git doesn't have them bugs me to no end. BZR was smart enough to copy that feature and that's why MySQL choose bzr when they left BK. The thing bzr didn't care about, sadly, is performance. An engineer at Intel once said to me, firmly, "Performance is a feature".
- clacke2 10y agoCool. I've used bzr but never knew about per-file comments.
- qwertyuiop924 10y agoGit's attitude, AFAIK, is that if you want per-file comments, make each file its own checkin. There are pros and cons to this. Performance as a feature, OTOH, is one of Linus's three tenets of VCS. To quote him, "If you aren't distributed, you're not worth using. If you're not fast, you're not worth using. And if you can't guarantee that the bits I get out are the exact same bits I put in, you're not worth using."
- ngcazz 10y agoBig fan of `git commit -vp` here. Enables me to separate the commits according to concerns.
- drewnoakes 10y ago
- pklausler 10y agoIn short, RCS maintains a clean copy of the head revision, and a set of reverse patches to be applied to recreate older revisions. SCCS maintains a sequence of blocks of lines that were added or deleted at the same time, and any revision can be extracted in the same amount of time by scanning the blocks and retaining those that are pertinent. Really old school revision control systems, like CDC's MODIFY and Cray's clone UPDATE, were kind of like SCCS. Each line (actually card image!) was tagged with the ids of the mods that created and (if no longer active) deleted it.
- rbsmith 10y ago| CDC's MODIFY and Cray's clone UPDATE, were kind of like SCCS Do you have references? I've heard of these but haven't come across details after much creative searching since they are common words.
- rbanffy 10y ago> the companies acted in self interest Sun, could, at least, make a profit building workstations and servers and licensing chips. It's actually very sad they don't build those SPARC desktops anymore.
- nickpsecurity 10y agoI really doubt it. There's not enough demand to make them competitive in price-performance. The server chips have stayed badass but still niche market. There's even open-source, SPARC HW with reference boards for sell from Gaisler. That didn't take off. I liked the desktops but there's no money in them. Market always rejects it. So does FOSS despite it being the only open ISA with mainstream, high-performance implementations.
- ryao 10y agoThe problems were Sun's failure to recognize that cheap IBM PC clones would disrupt them like they disrupted mainframes and Sun not trying hard enough to overcome Wintel's network effect. Sun needed to die shrink old designs to get something that they could fabricate at low cost and compete on price. Such a thing would have canabalized Sun workstation sales, which might be why they never did it.
- nickpsecurity 10y agoCould be. It's gone now, though.
- Annatar 10y agoYou again! (:-) You know that the VHDL code for UltraSPARC T1 and T2 has been open sourced? If I had enough knowledge about synthesizing code inside of an FPGA, I would be building my own SPARC-based servers like there is no tomorrow! As long as the code for those processors remains free, and a license to implement a SPARC ISA compliant processor only costs $50, the SPARC will never really, truly be gone, especially not for those people capable of synthesizing their own FPGA's, or even building their own hardware. Some people did exactly that, a while back. Too bad they didn't turn their designs into ready-to-buy servers.
- adharmad 10y agoThank you for contributing to the development and evangalizing of DVCS, directly (BK) and indirectly (the ideas and inspiration for git, hg).
- peonicles 10y agoIt's probably fair to say the DVCS accelerated the growth of the entire software industry. Was BitKeeper the first version control system to "think distributed" ?
- lobster_johnson 10y agoSun's TeamWare [1] was probably the first real distributed version control system. It worked on top of SCCS. Larry McBoy, BitKeeper's creator, was involved in its development. I believe BitKeeper also uses parts of SCCS internally. [1] https://en.wikipedia.org/wiki/Sun_WorkShop_TeamWare https://en.wikipedia.org/wiki/Sun_WorkShop_TeamWare
- luckydude 10y agoWe did a clean room reimplementation of SCCS and added a pile of extensions.
- qwertyuiop924 10y agoNSE begat NSE-lite begat TeamWare begat BK begat git. Or so says Cantrill.
- ryao 10y ago> in both cases, the companies acted in self interest. Neither had the guts to walk away from their existing revenue stream. Why does bitmover have the guts now?
- riffraff 10y agohe explained the move in another comment https://news.ycombinator.com/item?id=11668492 https://news.ycombinator.com/item?id=11668492
- bch 10y ago> realize that Tichy pulled the wool over our eyes. ref: https://en.wikipedia.org/wiki/Revision_Control_System https://en.wikipedia.org/wiki/Revision_Control_System, https://en.wikipedia.org/wiki/Walter_F._Tichy https://en.wikipedia.org/wiki/Walter_F._Tichy
- luckydude 10y agoYeah, that. I think he got a PhD for RCS and what he should have gotten is shown the door. RCS sucks, SCCS is far, far better. Just as an example, RCS could have been faster than SCCS if they had stored at the top of the file the offset to where the tip revision starts. You read the first block, then seek past all the stuff you don't need, start reading where the tip is. But RCS doesn't do that, it reads all the data until it gets to the tip. Which means it is reading as much data as SCCS but only has sorta good performance for the tip. SCCS is more compat and is as fast or faster for any rev. And BK blows them both away, we lz4 compress everything which means we do less I/O. RCS sucked but had good marketing. We're here to say that SCCS was a better design.