Perforce Oddities: “already opened on this client”

One of my users recently ran into a situation in which they couldn’t open a file for editing because perforce thought the file was already opened on their client: $ p4 edit <somefile> <somefile> – can’t edit (already opened on this client) The bizzare thing is was that p4 opened -a -u <user> did not […]

Perforce RCS files out of sync

During a server move relatively recently, we decided to go about it by setting up a replica in the new site, then switching it to a master once everything has been replicated over. It was a pretty solid plan. Unfortunately, something went wrong and the replica was missing revisions from it’s versioned files. This resulted […]

“Permission Denied” when accessing some files on linux, even as root

This was a pain. Our backup software was unable to read certain Perforce versioned files from the P4ROOT (mostly .gz files). Obviously this is a fairly big issue, as it prevented us from creating any useful backups. I checked the access control lists, ensured SELinux was disabled, and even gave the files in question 777, […]

Perforce Oddities: errors while restoring from a journal, and what you shouldn’t do.

Twice this month I’ve run into the situation where one of our db.* files got corrupted, and started throwing “BTree is corrupt!” errors on various commands. The first instance was caused by our system running out of main memory, and reaping p4d processes while they were writing to the database tables. The second instance was […]

Resizing Solaris Partitions

I’m currently in the process of resizing a partition in Solaris 10. So far, the instructions that I’ve found have been quite incorrect, so I’m documenting the steps I’m taking here. In my particular case, I’m resizing a single partition on a non-root disk after increasing it’s size through VMWare. I’m currently in the process […]

Perforce Oddities: cannot submit unicode type file using non-unicode server

Ran into this little gem today… I’ve got a project that I’m currently trying to branch. It’s a very simple integration operation from one location to another, nothing crazy. Of course Perforce needs to make it as complicated as possible by throwing me this error for a couple of our files: cannot submit unicode type […]

Perfmerge++ Warnings are not actually warnings!

I recently did a migration of source code from one perforce server to another. During the merge process, I ran into an odd warning: perfmerge++ warning: No mapping for change 293174 in database /x/sourceserver/server/. Rejecting. Thinking that it was just a dead or missing changeset, I skipped right along and proceeded to put the server […]

Adding a Windows slave to Jenkins the hard way

Jenkins makes adding slaves really easy. For unix machines, the preferred method is to use SSHD, which only requires that the master be able to contact the slave. On windows, however, you are stuck using a JNLP based solution, which requires that the slave be able to access master over the network. I got stuck […]

Quick Script: Email all recent Perforce users

Here’s a script I whipped up in order to send an email to all recent Perforce users. I needed this because my company uses a shared license, so all user accounts are shared between our perforce servers. When a server needs to go down for maintenance, I like to email only those people who actually […]

Reverting All Files In Perforce

I often find myself in the situation where I need to delete the perforce account of a user who has left the company. Unfortunately I’m usually unable to do so because they have left files open, resulting in this error: $ p4 user -d -f SOMEUSER User SOMEUSER has file(s) open on 2 client(s) and […]