January 26, 2012

What's New with P4Sandbox

P4Sandbox, Perforce's new client with distributed features like private local branching, has generated quite a bit of interest since we first announced it. I wanted to give everyone a quick status update and let you know the latest and greatest news.

P4Sandbox has been in an extended private beta for several weeks now. During that time, the engineering team has been working on the finishing touches and adding a few new features. P4Sandbox will be starting a public beta in the next few weeks, and we're anxious to have a wider audience try it out. I can give you the normal cautions about using beta software in a production environment, but I can also tell you that I've been using it for daily work myself with no damage done. (Actually, since I work remotely and like to save work early and often, it's been a huge help for my daily experience with Perforce.)

Now, on to the new features! I'll save the in-depth description for later and just give you the highlights here.

  • P4Sandbox now offers 'mergedown' and 'copyup' commands. These are convenience commands that make using task branches a little easier. 'mergedown' will merge changes from the parent branch to your current task branch, and submit automatically if there are no conflicts. 'copyup' will copy changes from the current task branch to the parent branch (but not submit them). These commands should save you a bit of time if you work in task branches frequently.
  • P4Sandbox lets you shelve changes onto the central server. If you shelve a change on the 'mirror' stream in your sandbox, it'll be shelved onto the central server. If you then submit the change using P4Sandbox, the shelf is removed. That gives you a lot of flexibility to work locally in P4Sandbox and use shelving to make your work available in the central server for review without actually submitting it. If your build process has the capability to do a pre-flight build using shelved changes, you can also leverage your CI system to build and verify local work before you officially submit it to the central server. That takes you a step closer to a distributed ALM solution.
  • And speaking of distributed ALM: if you submit to your 'mirror' stream in P4Sandbox and link the changelist to a job, P4Sandbox will link the corresponding central server changelist to a job of the same ID if it exists. To put that another way, if you use Perforce jobs to integrate with your defect tracking system, and you copy some of those jobs to your sandbox manually or with a simple script, you can link work in P4Sandbox to a defect (job) and have that link show up in the central server. There's more work to be done here, of course, but it's another step towards letting you work with other ALM tools while you work in P4Sandbox.

So there's a lot of great things coming for P4Sandbox as we move closer to the first GA release this spring. And I think it's becoming more clear that P4Sandbox offers a unique solution if you want some distributed features but still want to leverage the enterprise features and integrations that Perforce offers.