I have used three revision control systems during my career: SourceSafe, CVS, and Perforce

To help version personal efforts and make for nicer backups, effectiveness, I recently installed Perforce with Western Digital’s Live Book Duo.  It was a significant learning process and one that will enhance my technical effectiveness.  Here are some of the more useful tips involved with the setup:

Nice video explaining how to install:
http://www.perforce.com/resources/tutorials/10-minute-client-server-setup-windows

Helpful info reminding how to allow the port through the firewall:
http://www.hexar-decimal.com/2009/12/how-to-install-perforce-source-control.html (helpful info reminding about the firewall)

When using network-attached storage, ensure that the share has no password.

The default depot, titled ‘depot’ does not initially show up in p4admin.  However, it will show up after rebooting the server (this likely starts the corresponding service).

Keep the journal/server and storage locations on two different drives.  It appears there are methods to rebuild the depot from either drive.  Thus, if one drive goes bad, the files are still safe.  To change the location for depot storage, go into p4admin, right-click on the depot in question, and set the storage page to:

//<NAS>/<share>/<optional, etc>/...

Update January 8, 2016

My initial information may be incorrect about being able to restore either from the database (journal/server) and versioned files (storage).  Please see Perforce backup and recovery for more details.

Update January 10, 2016

When I think I’m done with installations, I typically submit a test file in the root of the depot just to be certain.  I was constantly getting an error in P4V to the effect of:

'mkdir' failed, librarian checkin failed, cannot copy file from client.

Perforce, by default, runs as a service (p4s.exe) instead of a server (p4d.exe).  Typically, you want to run as a service so you do not need to keep a specific user logged in all the time.  The piece that is not obvious is that services run as a SYSTEM user, which does not normally have network capability.

Keep in mind that I store my version-controlled files on a NAS instead of %P4ROOT%.  Behind-the-scenes, P4 is silently failing and/or returning a really uninformative error when it tries to write a file to the network drive.  To get around this, you have to tell the service your user/pass credentials.  Here are the steps to do so:

  • Go to the Services app (usually “services” or “services.msc” gets you there).
  • Find the “Perforce” service in the list, right-click on it, and click “Properties”.
  • In the new dialog, click on the “LogOn” tab.
  • Choose “This Account”.
  • Type your use/pass credentials in the provided textboxes.

After 6+ hours not finding any solid information through Google, Perforce, or similar and trying somewhat-educated personal attempts, it feels great to figure this out.  Although not really solid sources, I did find a few pages that got me thinking in the right direction: