Skip to content

DVCS - Why is it worth knowing about?🔗

Background🔗

Pick user or developer! Whichever your perspective : the message remains equally relevant.

Decades ago PC users were expected to embrace the concept of files and folders, but it wasn't easy for everyone. While many younger and/or regular PC users found it quickly intuitive, the concept often remained mysterious and confusing for older and/or occasional PC users. Many of us recall the divisive experience of a child trying to describe how files and folders work to an older relative; the frustration was felt equally from both perspectives, with the concept seeming easy to those for whom the penny had dropped, and baffling to those unfortunates with neither a good teacher nor a good explanation.

Today the concept of files and folders is rapidly disappearing from many people's interactions with computers. Perhaps surprisingly, however, the old concept is not only still alive, but remains the backbone of all systems and has importantly been refined by the addition of timelines. Timelines, more commonly known to developers as distributed version control systems (DVCS) such as Git 1, is a subject seen by developers as basic but seen by many users as baffling and/or irrelevant. The old unhealthy division still exists then, no longer in plain sight between non-users and users, but now hidden away as an unnecessary gap in understanding between users and developers.

A computing machine's essential strength is storing information and carrying-out automated instructions on behalf of humans. We appear to be seeing a progressive shift in the interface between human and machine (HMI), away from presenting information as files and folders, and towards indexing and retrieval-via-meaning. In other words the HMI is becoming more abstracted so the machine adapts to human language instead of the human needing to adapt to the machines's structure. For human consumers of a working system this shift clearly makes the HMI easier to use, but for humans interested in contributing to the workings it can make the system appear more complicated. In short, the abstraction away from files and folders masks an underlying reality : that the automation systems which perform the retrieval-via-meaning are still built using source code that's organised upon files and folders.

Distributed version control systems (DVCS), such as Git 1, have been a major enabling factor in the development of the abstracted systems supporting a more human centric interface. The essential strength of a DVCS is enabling parallel workflows through fast branching and merging with reliable history tracking but, at a more basic level, part of what makes a DVCS so powerful could be described as simply adding a timeline to files and folder systems.

Relevance🔗

An irony exists in the paragraphs above : The shift away from files and folders assumes that users have difficulty with them; but the powerful DVCS technology which at the old low level has helped developers to work with files and folders, has been used to develop the new higher level interfaces which shield users from them. Some users might benefit more from sharing in the refinements at the old low level, rather than being blindly encouraged up onto the new higher level.

The next page provides a convenient route for making the subject more accessible to users.


  1. other examples include Mercurial and Fossil