HNHacker News
TopNewBestAskShowJobs

rbsmith

32 karma · joined May 11, 2016

submissionscomments
rbsmith··on What Comes After Git
> I'm still left sort of scratching my head at the concept in a bytestream-oriented world instead of in the record-oriented world where I have, say, a deck of JCL cards and for which record-level inclusions and exclusions make sense

Long live CDC Update!

> who is intended to be TFA's audience

I got something from seeing that last diagram. True, I don't know what features that future work will bring, but see that what ever it is, they want to keep it mappable to Git. Staying mappable to Git is a tether that can limit or reward creativity.

You posted before Steve's response[0]. Does that help?

[0] https://news.ycombinator.com/item?id=49664978

rbsmith··on What Comes After Git
If you don't know otherwise, then no. Version control has always been a small market, and with Git, it's harder, because that sweet spot has been removed.

If you have some great reasons to say yes (Perforce, GitButler, ERSC) such as better technology targeting some industry, 2-way bridge to Git and connections in a market, then you wouldn't be listening to me.

rbsmith··on What Comes After Git
Depends on the industry and specifics of a company. Are they game developers with multiple sites? Is the customer a large company with a lot of vendor relationships using different systems? Are they a vendor of some customizable component used by many large companies? Is there a good integration with their bug tracking? Do they need to long term support of 25 years? Pain was in some part of their process that was constrained, maybe technical (workflow or integrations), maybe legal.

If Git works well enough, great! If not, maybe a different system fits better[0].

[0] - https://www.inkandswitch.com/project/backstitch/

rbsmith··on What Comes After Git
This is more a response to many of the comments here than to the article, offering a perspective of what value they might bring.

I’ve spent about 35+ years in and around version control / SCM, with half of that being part of the BitKeeper team, where my job was to think about sets, graphs, and weaves in the context of a team making commercial customers’ lives better along with benefit to open source world.

If Git is good enough for you, know that it is not true for everybody. For some subset of that everybody, it’s worth paying to have that pain go away. And part of having that pain go away is being able to stay connected to all that is, to be enough of a superset of the current world, to not be better in an incompatible way. That’s what I see in the pictures Steve and team draw: world that interacts with Git in a way that is better for some willing to pay to have the pain go away.

I agree nothing much is being said about the Non-Git Storage Engine. As I’ve spent half of my life in that world, I get it: secret sauce. I don’t expect much to be said for a while.

rbsmith··on Ask HN: What are you working on? (August 2026)
I'm working my way through "Improving Heuristics for A* Pathfinding". Thank you so much, HN!

https://news.ycombinator.com/item?id=49079995

rbsmith··on The future of version control
Do you use Pijul?

From time to time, I do a 'pijul pull -a' into the pijul source tree, and I get a conflict (no local work on my part). Is there a way to do a tracking update pull? I didn't see one, so I toss the repo and reclone. What works for you in tracking what's going on there?

rbsmith··on SCM as a database for the code
> there is no way to separate it

There is

git subtree --help

May get complicated at the edges, as files move across boundaries. It's a hard problem. And for some subset of those problems, subtree does give a way to split and join.

rbsmith··on US colleges are cutting majors and slashing programs after years of delays
Baumol’s Cost Disease or Baumol Effect [1]. Thanks for mentioning. I think it deserves more air time, especially looking at typical responses (raising price, reducing quality) and the consequences (raising prices raises expectations, triggering more investment causing prices to go up more). How to reduce consequences? Two models that seem to work are volunteer based organizations, such as AA[2] and education organizations coupled with technology, specifically AI, such as Khan Academy's Khanmigo[3]. What does this mean for universities? Lots of terrain to explore looking for sweet spots.

[1] There are the standard places to define like Wikipedia. The link I offer here is an A16Z podcast with Marc Andreesen and Vijay Pande where Marc gives an overview about 3 minutes in.

https://a16z.com/podcast/baumols-cost-disease-in-healthcare-...

[2] https://aa.org

[3] https://www.khanmigo.ai

rbsmith··on A Git story: Not so fun this time
I worked on bk

> The data received was SCCS, which was an understood format with existing tools.

You'd be surprised. SCCS is not broadly understood. And BK is not exactly SCCS.

I read the SourcePuller code when it was published (sp-01). It's pretty easy reading. I give Tridge credit for that. I wrote a little test, got it to checkout the wrong data with no errors reported. Issue was still there in sp-02 .

rbsmith··on William Wulf, computer pioneer who opened way for internet, dies at 83
I had him as a teacher for my 2nd CS class in 1976, I think it was data structures using Pascal. I don't think I had another class which we laughed so much. Enough learning and fun that I considered switching my major from EE. And then he left to be part of the project that became Ada. It was still a good class, but it became a normal class. I stayed with EE. Thank you, Prof. Wulf, for that glimpse of something bigger. It stayed with me.
rbsmith··on Lambda Calculus in 400 Bytes
Yes! Thank you. On to exploring!
rbsmith··on Lambda Calculus in 400 Bytes
The blc.S didn’t build for me using `-oformat:binary` . Changing to `--oformat=binary` it compiled, but then get core dumps. Running Linux x86_64 up to date Ubuntu 20.04.4 .

    for cc in cc gcc clang
    do  echo "## $cc"
        $cc -no-pie -static -nostdlib -o blc -Wl,--oformat=binary blc.S || exit 1
        { printf 0010; printf 0101; } | ./blc; echo
    done
Any suggestions?
rbsmith··on The Source Code Control System (1975) [pdf]
An example:

The 4th paragraph from the end of section II talks about optional deltas. It's like ifdefs in a version control system: many version can be checkout with or without some of the deltas. While not part of many version control systems, it's an interesting idea explored in Andreas Zeller's Feature Logic PhD work 20 years later [1].

[1 - currently, SSL cert expired this morning; notified] https://www.st.cs.uni-saarland.de/publications/files/zeller-...

rbsmith··on The Source Code Control System (1975) [pdf]
A reasonable direction to go, and I'll give sort of a non-response. For me, it's to take some time to absorb and celebrate this paper. If I go too quickly to doing better, I tend to miss the amazing. It also makes it easier for me to talk about other's contributions (like luckydude's many) to the state of the art, as then get into what could be better.
rbsmith··on The Source Code Control System (1975) [pdf]
This amazing paper holds a special place in my heart: my marked up 1992 copy serving me well when working as a graph and weave engineer on BitKeeper.

To me, SCCS is both a marvel and a disappointment. A marvel because its graph and weave were so far ahead of its time. A disappointment is because for the most part, time didn't build on the innovations, with TeamWare and BitKeeper among the exceptions.

Take the graph: storing history not just as a version graph, but also as a collection of deltas. The 3rd paragraph from end of section II:

"The second kind of special delta is one which, when applied, explicitly forces others deltas to be applied or not, by either including or excluding them. A list of deltas to be included or excluded is specified when such a delta is created. The exclusion facility is most often used simply to correct mistakes. For example if, after delta 3.14 is added, it is found to be undesirable, the programmer might add delta 3.15 which excludes it. If the module is accessed at level 3.14, delta 3.14 itself would be applied. If the module is accessed at a level 3.15, though, delta 3.14 would not be applied. From the viewpoint of control, this form of error correction is safer than allowing the programmer to actually delete a delta, since no potentially necessary information is lost."

Such advanced thinking from 1975! As for the for the brilliance of the weave, ... [1 - adding to mmastrac's reference of J. Schilling's wonderful SCCS pages]

[1]. http://sccs.sourceforge.net/sccs_invention.html

rbsmith··on Little is a statically typed, C-like scripting language
All the files that begin with L in :

https://github.com/bitkeeper-scm/tcl/tree/master/generic

rbsmith··on Mercurial server in Rust, specifically designed to support large monorepos
Maybe because Mercurial is GPL? I saw that too, and wondered as you did.

https://www.mercurial-scm.org/repo/hg/file/tip/COPYING

rbsmith··on Pittsburgh Gets a Tech Makeover
> I've never had an SFO<->PIT flight without layovers.

About 10 years ago, I did a round trip a month, each under $300 and all flights non-stop. Then USAirways hub status left, and the pain set in.

rbsmith··on Show HN: BitKeeper – Enterprise-ready version control, now open-source
Interesting. "^AI Spec" where Spec feeds into a predicate f(Spec, Version) to control printing a particular Version? Looks like you could drop the ^AE lines.
rbsmith··on Show HN: BitKeeper – Enterprise-ready version control, now open-source
Thank you! A peek into the (as far as I know) into root node of source control history.
rbsmith··on Show HN: BitKeeper – Enterprise-ready version control, now open-source
| 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.