Posts Tagged ‘Humor’

Forks, Feuds, and Friends – The Unix Family Version Tree

April 25th, 2008

It’s Friday… so I dug up one of my all-time favorite web gems: The Unix Family Version Tree. Ever wonder when Unix started? Or the relationship between BSD and System V? Or how closely related Mac OSX is (or is not!) to Linux? Click the chart to see the full-size version.

Unix Family Tree

Here are some notable shortcuts: SystemV, Linux, BSD, HPUX, Solaris, MacOSX, GNU/Hurd, Plan 9, Atari Unix, iPhone OS, Windows OS.

Even for those new to Unix (out on the leaves of the tree!), this time-line has a wealth of interesting information showing the history and relationships of most unix varietals. It will also help explain the usability challenges of switching between divergent OS’ from navigating file-systems to loading drivers to managing hardware.

While this reference isn’t exactly about AccuRev or its software development process automation per-se, it’s a great example of how divergent software can grow over time and how tracking changes between active mainline and previous releases becomes really tricky — unless you have good tools (like AccuRev!).

/happy friday/ – dave

ASCII 4 AccuRev

October 5th, 2007

I recently saw some folks sending around proposed stream structures via email. These hand-crafted works of art clearly took an incredible amount of time in order to line up all the pipes and dashes to represent the connecting lines. Adding a new stream means re-working all the connecting lines… what a pain!

An alternate and simpler solution is to create a temporary depot and all the streams/snapshots/workspaces… then take a screenshot and send the stream hierarchy as an image. This is better because adding new streams will dynamically update the position of all streams. Though, there are times when simply pounding out a quick ASCII version is desired…

Taking a page from Fortran/Python formatting and reminiscing about my nethack days… here’s an example technique for modeling AccuRev with ASCII.

The Language:

        depot --name
       stream -~name
     snapshot -$name
    workspace ->user
    timebasis -@name
       hidden -*name
  default grp -^name

An Example:

    --depot-~test-~int-~fix1234->dthomas
                      -~featureX->dpoole
                                ->bdemaria
                      -@featureY->dleblanc
                      -$nightly_20070507
                  -$rc_20070508-^maint-~dthomas
                                      -$rc_20070508.01
                                      -$rc_20070508.02
              -$rel_20070509
              -$rel_20070618

Ok, I’m just playing around. It’s Friday! ;)

/happy hacking/ – dave