June 6, 2012

Perforce and Einstein’s General Theory of Relativity

Version Control

What could Perforce and the general theory of relativity have in common?

They both unify the fourth dimension of time with the three dimensions of space. 

Not yet convinced? Read on!

Where and When

There are many document or software management tools that help identify where a document is. Examples would be searching, tagging, and labeling. Version management adds the identification of when a document is. That is, version management tracks the relationship of a file’s changes through time as well as space (albeit, virtual space.)

But first, I’d better explain a little more about what I mean when I talk about a document having a “when”.

Rather than thinking of all variants of a document as equivalently roguish copies, instead consider all these variants lined up into their time-based order. You may have come across this arrangement in an application that stores multiple backups of an edited file. But what if two people simultaneously edited a file? A magic trick of version management is that it can track parallel edits of a document and reconcile the changes back into a single version. Software programmers do this all the time: they call it branch and merge.

I started to get an inkling of this article when I realized my preferred method to examine a source code file was Perforce’s Time-lapse View. Time-lapse View shows you, in a single pane, every line of code that is or ever was in a file. In essence, it unifies the entire temporal life of a file into a single view. That’s a lot different than viewing a single revision in an editor. It’s also a step up from viewing diffs, which merely compares two slices.

Perforce also has another way to see a “total view” of your files in time, Revision Graph. Revision Graph shows the entire history of the branching and merging within the container for a file’s content, also known as the filename.

Here, time flows from left to right, and Perforce tracks every add, edit, integrate and more. It’s one thing to know where a file is in the virtual space of depot paths, and it’s another to unify that knowledge with where that file has been in the past.

Version Everything!

Software developers have long enjoyed the benefits of tracking changes in time as well as space, as visualized in development tools like Time-lapse View and Revision Graph. Now Perforce’s Version Everything mission aims to unify the four dimensions of space-time for content and document management as well.

For example, imagine you find a copy of a document  you’ve worked on before in a folder on your desktop, but aren’t sure which version it is, or if it contains original edits you want to keep. Drag the file into our Commons product, and Perforce, behind the scenes, figures out what and when that document is. You might find out not only where your Commons-resident copy is (your Favorites Space), but also when your rogue document is (last week, already checked in), and so the duplicate copy can be deleted.

Theory and Proof

There’s a difference, though, between Perforce’s vision of version management and Einstein’s famous theory: while Einstein had to wait four years for a proof of his theory, from publication in 1915 until the solar eclipse experiment in 1919, version management already enjoys a well worn blueprint. Software engineers and source code version management have already proven the value of managing change through time as well as location. So download Commons today and try out the future!