Astonishments, ten, in the history of version control

“If you really want to … truly ancient history, you have to go back to delta decks on punch cards.” (Jim Rootham)

In a world where biographies of cod are not just accepted, but rightly popular, it wouldn’t seem entirely crazy to write a history book on how computer programmers store the vital product of their labours – source code.

Since neither you nor I have time to read or write such a thing, we’re going to have to settle on this one blog post.

It’s an important subject.

The (for now) final end product seems incredibly obvious. And popular.

Yet it took decades of iterative innovation, from some of the cleverest minds in the field, to make something so apparently simple yet powerful.

And every step was astonishing.

1. Source code is text in a file! (1960s)

With hindsight, it’s obvious that source code is best stored as just writing in simple documents. A brief read of the history of ASCII gives a flavour for the complexity of agreeing even that.

2. Humans can manually keep track of versions of code! (1960s)

As everything, to begin with there was no software.

“At my first job, we had a Source Control department. When you had your code ready to go, you took your floppy disks to the nice ladies in Source Control, they would take your disks, duly update the library, and build the customer-ready product from the officially reposed source.” (Miles Duke)

3. You can keep lots of versions in one file! (1972, 1982)

Using a fancy interleaved weave file format, SCCS ruled the roost of version control for a decade.

It took some years to develop a good method for recording the changes from one version of a file to the next. “An Algorithm for Differential File Comparison” is a relatively late paper to read on the subject (1976).

In 1982, SCCS’s successor RCS (original paper describing it) used these diffs in reverse to beat SCCS, and astonished this commenter:

“Along came RCS with its reverse-deltas, and I thought it was the bee’s knees” (Anonymous)

4. You can each have your own copy checked out! (1982)

At the time, people tended to log into a central mainframe and work together via that. With RCS, using symbolic links, it could be arranged so that each person was working with the same version control, but their own working copy.

“there will be a file called RCS that is a symbolic link to the master RCS repository that you share with the rest of your group members” (Information on Using RCS at Yale)

5. Wow! You can version multiple files at once! (1986)

Amazingly, up until CVS, each version control system was for separate individual files. Yes, you can use RCS with wildcards to commit multiple files, or mark particular branches. But it isn’t really part of the system.

In CVS it was the default to modify all the files recursively. Software was suddenly a recursive tree of text files, rather than just a directory or an individual file.

It was badly implemented as it wasn’t “atomic” (successor Subversion fixed this in 2000), but really that doesn’t matter for the purpose of astonishment.

6. Two people can edit the same file at the same time, and it merges what they both did! (1986)

In the late 1990s I worked at Creature Labs. We were changing from Visual SourceSafe (commercial, made by Microsoft) to CVS (open source, made by a bunch of hippies).

There was frankly disbelief that it could do its main magical promise – let multiple people edit the same file at the same time, and be able to flawlessly merge their changes together without breaking anything.

The exclusive locking of SourceSafe was a real problem when we were making Creatures 3. I remember a particular occasion we were adding garbage collection which meant editing most code files, and the lead programmer had to check out every file exclusively over the weekend while he implemented it.

This paper from the 1986 is an excellent historical record of this magic, wherein Dick Grune suffers the same problem while his team code a compiler in Holland, and so invents CVS.

7. The shared repository can be on a remote machine! (1994)

Most of this time people were mainly using version control on one computer. Some versions of RCS, and hence CVS, had a remote file sharing mechanism to let you have a remote code repository in 1986.

“If a version of RCS is used that can access files on a remote machine, the repository and the users can all be on different machines” (Dick Grune)

But it looks like it was only in 1994 when a TCP/IP protocol added, that the idea really took off.

“[CVS] did not become really ubiquitous until after Jim Blandy and Karl Fogel (later two principals of the Subversion project) arranged the release of some patches developed at Cygnus Software by Jim Kingdon and others to make the CVS client software usable on the far end of a TCP/IP connection from the repository” (Eric Raymond)

8. Free open source version control hosting! (1999)

This isn’t an advance in source control technology, but it was astonishing, and on the Internet social advances can be as important as technical ones:

The tendency was for older OSS versions to be hard to find … John T. Hall had the insight that if projects were developed on the site, the old versions would be there by default. A development platform service was audacious, but no one else was doing it, and we thought “why not?” (Brian Biles)

Partying like there was no tomorrow (for their stock), VA Linux introduced SourceForge to the world. This was great for new projects (like my TortoiseCVS).

It was hard and expensive to get a server on the Internet back then, and it wasn’t easy or cheap to set up source control and a bug tracker. This new service, despite its lack of business model, fledged numerous projects that bit earlier.

9. You can distribute it all so there’s no central repository! (2005)

There was a wave of version control systems in the early noughties, making version control completely distributed.

That is, your local machine has an entire copy of the history of the code, and can easily branch and merge on a peer to peer basis with any other copy of it. By the way, the same feature makes it much easier to branch and merge in general.

Given that, it seems unfair that I’ve dated this astonishment 2005. That’s because I’m not recording the first time anyone made the astonishing thing, but the first time it was productised and became popular. April 2005 was when both Mercurial and Git were released.

The post “The Risks of Distributed Version Control” (late 2005) shows how radical this new-fangled stuff was seen to be.

10. When you checkout that’s a fork too, and you can do that in public! (2008)

The success of GitHub is for several reasons (that deserve a whole blog post, although I’ve alluded to one of them before).

In the context of this post, the astonishment was that you might want to make even your tiny hacks to other people’s code public. Before GitHub, we tended to keep those on our own computer.

Nowadays, it is so easy to make a fork, or even edit code directly in your browser, that potentially anyone can find even your least polished bug fixes immediately.

Coda

Have a quick look back up at those decades of progress. Yes, some of the advances were also enabled by increasing computer power. But mainly, they were simply made by people thinking of cleverer ways of collaborating.

It makes me wonder, what is next? What new astonishing thing will happen in version control?

More broadly, can the same thing happen in other fields?

Are core parts of our information infrastructure – that ultimately block innovation in government or healthcare or journalism or data, as capable of such dramatic improvement?

I have this feeling we’re going to find out.

Want more? Read “The version control timeline” (on Plastic SCM’s blog, don’t miss the comments) and “Understanding Version-Control Systems” (by Eric Raymond).

86 thoughts on “Astonishments, ten, in the history of version control

  1. Новый samsung galaxy цены уже в продаже и сочетает стильный дизайн с мощной камерой.
    Третий раздел посвящён производительности и автономности Samsung, что критично для активных пользователей.

  2. Если ищете надежные прогнозы, присоединяйтесь к проверенные капперы и получайте актуальные ставки и аналитику.
    Их профессиональные навыки и системный подход позволяют вырабатывать прогнозы, дающие высокую вероятность успеха.

    Следует оценить длительность практики и постоянство итогов на протяжении разных периодов.

    Не рекомендуется рисковать всеми средствами ради одного прогноза, пусть даже от надежного каппера.

    Помните о рисках и контролируйте свои вложения, даже при сотрудничестве с лучшими специалистами.

  3. Профессиональное продвижение сайтов seo обеспечит долгосрочный рост органического трафика и увеличение продаж
    Результаты анализа помогают выстроить контент-стратегию и выбрать каналы привлечения трафика.

    Без устранения технических ошибок даже качественный контент может не дать желаемого результата.

    Создание полезного и уникального контента удерживает аудиторию и улучшает позиции в поиске.

    Тестирование гипотез и адаптация тактик помогают находить рабочие решения и масштабировать успех.

  4. предлагает быстрый и безопасный доступ к играм через обновлённое зеркало официального сайта.
    Полноценная работа сервисов через зеркало обеспечивает непрерывный игровой процесс.

  5. На официальном портале 7к зеркало вы найдёте текущие акции и бонусы для игроков.
    Сайт 7к казино предлагает пользователям удобный интерфейс и быстрый доступ к игровым разделам.

    Каждая игра сопровождается описанием правил и уровнем риска, что помогает выбрать подходящий вариант.

    Финансовые операции поддерживают различные способы оплаты, такие как банковские карты и онлайн-кошельки.

    Публичные сведения о лицензии и регуляторных требованиях опубликованы для прозрачности работы 7к казино.

  6. Щебень гравийный — оптимальный материал для дорожных и строительных работ; подробные варианты и условия заказа смотрите на купить гравий.
    При выборе поставщика важно учитывать сертификаты качества и репутацию компании.

  7. Щебень гравийный — оптимальный материал для дорожных и строительных работ; подробные варианты и условия заказа смотрите на купить гравийный щебень.
    Важна проверка на наличие глинистых и органических включений, снижающих сцепление.

  8. Ищете идеальный трековый велосипед цена для тренировок на велотреке и городских выездов — у нас есть модели на любой вкус и бюджет.
    Питание и восстановление играют важную роль, так как интенсивные усилия на треке требуют восстановления мышц и энергетических запасов.

  9. Ищете, где zeekr сайт конфигуратор, — заходите к официальному дилеру в Москве и выбирайте подходящую комплектацию.
    Покупатели задаются вопросом о наличии Zeekr в шоурумах и об условиях покупки у официальных представителей.

    При покупке Zeekr рекомендуется внимательно изучить доступные конфигурации, провести тест-драйв и сравнить технические параметры.

    При покупке стоит рассмотреть варианты финансирования: кредит, лизинг или программа обмена старого автомобиля.

    Перед тем как купить Zeekr, полезно прочитать отзывы владельцев и независимые тесты, чтобы составить полное представление о машине.

  10. Играйте безопасно и ответственно на 7ка казино официальный сайт.
    Официальный ресурс Casino 7K оптимизирован для работы на смартфонах и обеспечивает стабильную работу игр.

    Регистрация в Casino 7K проходит быстро и включает несколько стандартных шагов.

  11. Занятия в английский для начинающих детей помогут вашему ребёнку легко и с удовольствием освоить первые английские слова и фразы.
    В подобной атмосфере ребенок быстрее усваивает новые слова и грамматические структуры.

    Игры и песни — ключевой инструмент в обучении малышей английскому языку. Музыкальные и игровой подходы являются основой эффективного изучения английского детьми.

    Визуальные материалы и предметы из окружения делают обучение практичным и понятным. Карточки с изображениями, игрушки и плакаты облегчают ассоциации.

    Регулярность занятий и позитивная обратная связь определяют успех в изучении языка. Отмечайте прогресс и поощряйте старания ребенка, проявляя терпение.

  12. Ищете, где купить колеса лето — заходите к нам, лучшие цены и быстрая доставка по Санкт-Петербургу.
    Правильная покрышка обеспечивает хорошее сцепление с дорогой и сокращает тормозной путь.

  13. Открой для себя лучшие приложения и новинки в приложения для android, где удобно искать, скачивать и обновлять всё необходимое.
    Рубрики и сортировка облегчают выбор по категориям, рейтингу и новизне.

    Важно проверять список изменений перед установкой крупного обновления.

    Платформа создает преимущества для обеих сторон: пользователей и создателей.

    Именно через магазин пользователь получает доступ к новым функциям и сервисам для Android.

  14. Посетите для быстрой регистрации и доступа к официальному сайту, зеркалу и персональным бонусам.
    Для новых пользователей доступна простая регистрация и приветственные бонусы, которые можно получить сразу после подтверждения аккаунта.

  15. Ищете, где zeekr официальный дилер, — заходите к официальному дилеру в Москве и выбирайте подходящую комплектацию.
    Бренд Zeekr быстро укрепляет позиции в сегменте электромобилей, предлагая конкурентные модели и современный дизайн.

    Следует учитывать заявленный пробег на одной зарядке, возможности быстрой зарядки и условия гарантийного обслуживания.

    Финальная цена Zeekr определяется уровнем оснащения, дополнительными пакетами и действующими предложениями дилеров и региональных программ.

    Также полезно проверить наличие сервисной сети и стоимость обслуживания в вашем регионе, чтобы избежать неожиданных расходов.

  16. Ищете идеальный сколько стоит трековый велосипед для тренировок на велотреке и городских выездов — у нас есть модели на любой вкус и бюджет.
    Трековый велосипед требует от райдера особой техники управления и умения держать высокую скорость на поворотах.

  17. Красивый и надежный установить забор цена подчеркнет индивидуальность вашего загородного дома и обеспечит безопасность участка.
    Также необходимо продумать дренаж, основание и защиту от коррозии или гниения.

  18. Занятия в школа английского языка для детей курсы помогут вашему ребёнку легко и с удовольствием освоить первые английские слова и фразы.
    Задача педагога — поддерживать мотивацию и избегать давления.

    Игры и песни — ключевой инструмент в обучении малышей английскому языку. Игры и песни — ключевой инструмент в обучении малышей английскому языку.

    Визуальные материалы и предметы из окружения делают обучение практичным и понятным. Использование картинок и предметов из быта делает процесс изучения английского наглядным.

    Регулярность занятий и позитивная обратная связь определяют успех в изучении языка. Короткие ежедневные занятия эффективнее редких долгих уроков.

  19. Закажите изготовление ремувок с индивидуальным дизайном и быстрым изготовлением для продвижения вашего бренда.
    Заказные ремувки с логотипом всё чаще используются компаниями для усиления узнаваемости бренда.

  20. Ищете, где летние шины спб — заходите к нам, лучшие цены и быстрая доставка по Санкт-Петербургу.
    Выбирайте шины с учётом характеристик автомобиля и условий эксплуатации.

  21. Открой для себя лучшие приложения и новинки в магазин приложений для android, где удобно искать, скачивать и обновлять всё необходимое.
    Система рекомендаций адаптируется к предпочтениям владельца устройства.

    Важно проверять список изменений перед установкой крупного обновления.

    Чем выше оценка, тем более заметным становится приложение для новых пользователей.

    Замечаются магазины, ориентированные на определённые регионы или предоставляющие уникальные акции.

Leave a Reply to zeekr_imen Cancel reply

Your email address will not be published. Required fields are marked *