Like Subversion, it’s a client/server system where the server manages a database of revisioned files, and clients connect to checkout, modify and send back changes for others to pick up.
I wanted to check out the latest version so thought I’d install it on this server and set up a client… and that I may as well capture the steps and put them here.
In my case, the server is an Ubuntu Linux host, and my client machine is a Windows XP workstation.
There’s not a lot to do when installing Perforce, so getting a straightforward instance up and running is a breeze. Basically, get the binary, export or pass it a few settings if you don’t want the defaults, then kick it off – here’s the detail from my notes:
Download p4d binary (for this platform and architecture):
You can put this wherever you want, and set up a P4ROOT to specify the Perforce root directory – but don’t use that location for anything else (including client workspaces).
mv p4d /apps/perforce; cd /apps/perforce
chmod +x p4d
Most Perforce options can either be exported or passed as a command-line arg, so you can choose
– or –
The default port is 1666, and remember that if you change this on the Server you will need to change it on your Perforce client(s) too. In my example I’m using 9002:
– or –
So I ended up with a command line that looked like this:
nohup ./p4d -r /apps/perforce -J /var/log/journal -L /var/log/p4err -p 9002 &
Which I will probably put in to a simple startPerforce.sh script, and a probably a stopPerforce.sh script too that contains this and maybe the port number and full path to the binary location:
p4 admin stop
That’s it for the Server side at the moment, there’s a process up and running (you can check the output in nohup.out) so it’s time to set up and connect a client…
I’m going for a Windows client installation, which means downloading the correct version from the Perforce site then running p4vinst.exe. There’s nothing really to report here; select the usual options like directories and let it install.
Oh, I also needed to create a user, so back on the Linux Server I also downloaded the p4 binary:
Exported the P4PORT (since I was using a custom one to get through my firewalls), then add a user:
chmod +x p4
./p4 user -f Donald
User Donald saved.
Now you can test connecting to your Perforce Server with the P4Admin GUI and the P4V GUI on the Windows client host by specifying the correct port (if you changed the default) and a valid user name. Once that’s done, you can admin your Depot’s and add/change/commit files, see revision and history information and all that good stuff. There are also command line and web interfaces too which can be useful for temporary use and for scripting but the Windows GUI’s are nice to use and quite self explanatory – if you’ve used a similar revision control system like Subversion and an Eclipse-like IDE before there’s not much of a learning curve here.
The Perforce Help and Documentation is all very good, and their Perforce 2010.2: System Administrator’s Guide covers all of the above in more detail, and touches on more advanced topics too – Perforce Performance Tuning, Backup and Recovery, Replication, and the Perforce Broker (P4Broker) etc.
There’s also a Perforce plugin for Jenkins, which once installed allows you to choose Perforce as one of the SCM option in your Jenkins jobs, but the above hopefully covers the initial setup of both the Perforce Client and the Perforce Server on Windows and Linux respectively.