Scripts Version Control Intro - Supercollaborative/Supercollaborative.github.io GitHub Wiki

These videos introduce version control, fairly quickly, from first principles.

And for these videos, the first principle is that the changes we make to programs are discrete, not continuous.

Let me show you what I mean by that with a trivial example

Here we have a very simple program in a made up language. It just declares that twice x is two times x. And all I'm going to do is add another function saying that thrice x is three times x.

But as soon as I start typing, this program is broken - it's syntactically incorrect and won't compile.

When I get as far as def thrice x = 3, it'll compile, but it's still wrong. Add the times and it won't compile again. And then at last we reach a program that's correct again and has the change I want. Thrice x is three times x.

Ok, that's an artificially simple example in a single file. But the same principle is true for bigger changes across multiple files. I might change a function definition in one place, and then need to update every place where that function is called before the program will work again.

...