[TUHS] Claim your early Unix contributions on GitHub

Larry McVoy lm at mcvoy.com
Thu Mar 31 13:54:52 AEST 2016


On Thu, Mar 31, 2016 at 01:42:23AM +0200, Joerg Schilling wrote:
> Larry McVoy <lm at mcvoy.com> wrote:
> 
> > > Given that using git enforces a loss of meta data, is there a chance to get 
> > > the SCCS history for older UNIX versions?
> >
> > You are the first person outside of BitMover that I've ever seen
> > recognize that.  Go you!  It's very annoying, we can write a perfect BK
> > to Git exporter but going the other way is a research project.
> 
> We talked about this before: You are the only person who does not attack me 
> when I write that SCCS is much faster than RCS, just because you know ;-)

You can thank Walter Tichy, who got a PhD for RCS if I recall, can you
believe that?  He tried to paint SCCS as bad and everyone believed him.

SCCS is brilliant in how it stores the changes, it's a weave rather than
diff and patch.  Which means it can get 1.1 as fast as it can get the tip.
Or better put, in a big tree, it is way way faster than git for some things:

What                      BK              GIT         How much faster is BK?
----------------------------------------------------------------------------
annotate/blame        0.01 seconds     32.3 seconds        3230 times faster
search history        0.01 seconds    138.9 seconds       13890 times faster

That's a 1M changeset tree with 230,000 files (4GB of history).  You all
know what annotate/blame are, the search history is answering the question
"did the string 'those bastards at $COMPANY' ever occur in our source code?"
so it's searching all versions.  The SCCS weave is instant for stuff like 
that; diff and patch have to tons more work.

> The first system to implement something based on previous good ideas was BK and 

We took the weave and turbo charged it.  Recent BK versions are crazy fast.

> AFAIK, GIT was implemented originally as an empty shelf that aimed to imitate 
> the CLI from BK.

No, Git, credit to Linus, was his own ideas.  Yeah, he took the basic model
of clone/pull/commit/push, but the storage format is all his (and retarded,
it doesn't scale, it's all content addressable data by hash, works when it
fits in memory, thrashes like hell when it doesn't).  

Anyhoo, we should take this private, this is a Unix list, not an SCM list.
Though I am loving the work to get a repo, even if it is git, with all
the history.  That's awesome!



More information about the TUHS mailing list