web-dev-qa-db-ja.com

PERFORCEでファイルパーミッションビットを設定する方法

その他のビットがオフになっていることに気付いたファイルがいくつかあります(たとえば、PERFORCEにチェックインしたときにアクセス許可が550に設定されています)。誰もが読み取りおよび/または実行できるようにしたいと思います。 'ls -l'の用語で言うと、ファイルのパーミッションは次のようになります。

チェックイン:-r-xr-x ---
チェックアウト:-rwxr-x ---

p4 editを実行する前にchmod 555を設定しようとしましたが、Perforceはそれを750にリセットします。同様に、ファイルを開いた後にchmod 755を設定しました。編集していますが、送信すると550に戻ります。

p4 help filetypesのドキュメントを読んだところ、これに答えるものは何も見つかりませんでしたが、とにかく+ xを試しましたが、違いはありませんでした。

PERFORCEの他のビットを設定するにはどうすればよいですか?

11
Angelo Babudro

Perforceでファイルのパーミッションを設定する方法は2つあります。

  1. ファイルのパーミッションを設定するbeforeyou p4 addファイルをPERFORCEに送信します。
  2. 必要な権限でファイルを編集します。
p4 edit -t text+x some_bash_script.sh

次に、PERFORCEは、要求したファイルタイプを使用して編集用にファイルを開きます。 このドキュメント PERFORCEファイルタイプオプションの詳細があります。

27
Ricky Levi

解決策は、保持したいビットをマスクしないようにumask(ユーザーファイル作成マスク)を設定することでした(例: "umask0022")。

デフォルトでは、新しいファイルを誰でも読み取れるようにしたくなかったため、私のumaskは「0027」でした。ほとんどの場合、ファイルのアクセス許可は設定されたままです。たとえば、ファイルを編集してからそのアクセス許可を変更してから再度編集すると、そのアクセス許可の構造はumaskに従ってリセットされず、元のファイルが保持されます。

PERFORCEは、操作のたびにファイルを消去して再書き込みするように見えます。ファイルを「p4編集」した場合でも、umaskを変更し、ファイルを変更せずにすぐに「p4 revert」を実行すると、PERFORCEはumaskに応じて許可ビットを変更します。

2
Angelo Babudro