May 6, 2014

Introducing “Piper”, a Versioning App for the Rest of Us


Perforce offers persona-based versioning apps designed to address specific user needs. P4V is a versioning UI trusted by hundreds of thousands of developers. The P4 CLI is heavily used by DevOps. Commons simplifies versioning for business staff.

Perforce’s APIs also enable developing custom interfaces for situations when these out-of-box tools don’t meet your needs. And that’s exactly what Perforce Consulting recently did for a customer who had a specific set of requirements that could not be met by any of the existing clients. In their scenario, users were mostly non-technical designers, marketers and product managers collaborating on design and production for new sporting apparel.

We built a new app, Piper, for users that did not need all the power of P4V and wanted a workflow that minimized manual file management. Piper was developed natively for the Mac OS X platform and offers a dramatically simpler learning curve for users of version management.

Here are some of the defining characteristics of Piper:

  • A “watchdog” process for monitoring the local file system, so that even if users choose to add/modify/delete files outside of the app, those changes are automatically detected and applied. This gives users greater freedom to work on files rather than being confined to the app at all times.
  • UI elements that are popular on Mac OS X: Cover Flow view of file revisions, thumbnail preview of file content, and Finder-like browsing of files and folders
  • Support for drag-and-drop of files onto the app, for checking them into Perforce
  • Tagging files (using #hashtag prefixes) to facilitate subsequent searching and grouping of files
  • Indexing and searching of files based upon file names, content and tags

Today, we are thrilled to make Piper available to the community at large. You can download Piper here, including all of its code. Piper is available under a two clause BSD license in the Perforce open source Workshop community.

In terms of its technical underpinnings, the app has been developed in Objective-C, using Perforce’s derived API for Objective-C. For indexing and searching, it uses p4-search that is built atop Apache Solr and Lucene. Once deployed on a Perforce network, the app benefits from all the performance and scalability features of Perforce. As an example, a user could be using the app and connecting to a local Replication Service in Moscow which, in turn, could be synchronizing data with a central Perforce server in Los Angeles.

Feel free to download the app and the source code from the Perforce Workshop and contribute to the project if you have ideas for improving the experience.

If the app is the right fit for your needs but you need a hand in tweaking it a bit, Perforce Consulting can help. Contact us at [email protected].