June 1, 2011

Streams: Pretty Is As Pretty Does

MERGE User Conference

The questions peppering the presenters made it clear: Streams are exciting and colorful and … too pretty? “Is there a command-line interface for streams?” an audience member asked after the preso. “We have thousands of branches. That graph was really nice but our situation would quickly render it unusable.”

Luckily, Perforce has thought of that, in more ways than one. First, there is a command-line for those who prefer it, but there are also preferences that can make a tangled stream graph readable and relevant.

Steph Turner, Gabe Weiss, Laura Wingerd
Steph Turner (left), Gabe Weiss (middle) and Laura Wingerd (right).

But first, what are streams?  Laura Wingerd, VP of Product Technology, surveyed the company’s users several years ago and found a pattern in the most productive sites. Streams implant that pattern into the product, “making Perforce the only SCM system that knows the difference between development streams and release streams, and the only system that models stability and risk in software development,” said CEO Christopher Seiwald.

The streams feature in the 2011.1 release has been the source of much interest from users since its announcement. “Streams give users a roadmap of where and how to do branching and merging. They guide good behavior rather than enforce it,” said Wingerd. Actually a Perforce database object, a stream contains metadata about a branch — its location in the depot, its owner, its parent branch, and more. This contextual information makes much more intuitive – and visual – branching behavior possible.

Following Laura’s explanation of streams came a humorous demo by Perforce GUI developers Stephanie Turner and Gabe Weiss. Following a day in the life of developers, the two showed common scenarios as played across Facebook, such as “Dude don’t mess with the mainline. We just got it stable,” followed by a desperate play to “cut a dev branch for me and save my life.”

Steph Turner