How to set file permission bits with Perforce

20,215

Solution 1

There are two ways to set file permissions in Perforce:

  1. Set the file permissions before you p4 add the file to Perforce.
  2. Edit the file with the permissions you would like to have i.e:
p4 edit -t text+x some_bash_script.sh

Then Perforce will open the file for edit using the filetype you requested. This document has more information on Perforce filetype options.

Solution 2

The solution was to set the umask (user file-creation mask) so that it does not mask the bits I want to keep -- e.g., "umask 0022".

My umask was "0027" because by default I did not want new files to be world-readable. Most often a file's permissions stay as they are set. If you edit a file, for example, change its permissions, then edit it again, its permission structure is not reset according to your umask, but rather the original is retained.

It appears as if Perforce erases and re-writes the file with every operation. Even if you "p4 edit" a file, then change your umask, and immediately do "p4 revert" without making any modifications to the file Perforce will change the permission bits according to your umask.

Share:
20,215

Related videos on Youtube

Angelo Babudro
Author by

Angelo Babudro

Updated on July 09, 2022

Comments

  • Angelo Babudro
    Angelo Babudro almost 2 years

    I have a few files that I noticed have the Other bits turned off (e.g., permissions set to 550 when checked-in to Perforce). I want them to be readable and/or executable by everyone. To put it in 'ls -l' parlance, the file's permissions look like this:

    Checked-in: -r-xr-x---
    Checked-out: -rwxr-x---

    I tried setting chmod 555 before doing p4 edit, but Perforce just resets it to 750. Likewise I tried chmod 755 after the file was opened for editing, but when I submit it reverts to 550.

    I read the p4 help filetypes documentation and saw nothing that answered this, but I tried +x anyway and it didn't make any difference.

    How can I set the Other bits in Perforce?

    • Angelo Babudro
      Angelo Babudro over 9 years
      Thanks, Sam! That was it. It's as if p4 erases and re-writes the file each time. I hadn't thought of that. "umask 022" fixed it.