Skip to content

CLAUDE_CODE_PERFORCE_MODE 環境変数の追加

原文(日本語に翻訳)

CLAUDE_CODE_PERFORCE_MODE 環境変数を追加しました。この変数が設定されている場合、Edit / Write / NotebookEdit は読み取り専用ファイルに対して黙って上書きするのではなく、p4 edit のヒントとともにエラーを返します。

原文(英語)

Added CLAUDE_CODE_PERFORCE_MODE env var: when set, Edit/Write/NotebookEdit fail on read-only files with a p4 edit hint instead of silently overwriting them

概要

Claude Code v2.1.98 では、Perforce バージョン管理システムと連携するための CLAUDE_CODE_PERFORCE_MODE 環境変数が追加されました。Perforce では、ファイルを編集する前に p4 edit コマンドでチェックアウトする必要があり、チェックアウトしていないファイルは読み取り専用になります。この環境変数を設定することで、Claude Code が読み取り専用ファイルを誤って上書きしようとした際に、p4 edit を実行するよう促すエラーメッセージが表示され、Perforce のワークフローを保護します。

基本的な使い方

bash
# CLAUDE_CODE_PERFORCE_MODE を設定して Claude Code を起動
export CLAUDE_CODE_PERFORCE_MODE=1
claude

# または、起動時に一時的に設定
CLAUDE_CODE_PERFORCE_MODE=1 claude

この環境変数が設定された状態で読み取り専用ファイルを編集しようとすると、Claude Code は次のようなエラーを返します:

Error: File 'path/to/file.cpp' is read-only.
Run 'p4 edit path/to/file.cpp' to check out the file before editing.

実践例

Perforce ワークスペースでの基本的な使い方

bash
# Perforce ワークスペースに移動
cd /path/to/p4-workspace

# CLAUDE_CODE_PERFORCE_MODE を設定
export CLAUDE_CODE_PERFORCE_MODE=1

# Claude Code でファイルを編集しようとすると...
claude

# 読み取り専用ファイルの編集時にエラーとヒントが表示される
# Error: File 'src/main.cpp' is read-only.
# Hint: Run 'p4 edit src/main.cpp' to check out the file.

# p4 edit でチェックアウト後に再度編集
p4 edit src/main.cpp
# その後 Claude Code で編集が可能になる

.bashrc または .zshrc での永続的な設定

Perforce 環境で常に Claude Code を使う場合は、シェルの設定ファイルに追加します。

bash
# ~/.bashrc または ~/.zshrc に追加
export CLAUDE_CODE_PERFORCE_MODE=1

# 設定を反映
source ~/.bashrc

複数ファイルの事前チェックアウト

大規模な変更を行う前に、関連ファイルをまとめてチェックアウトすることで、Claude Code との連携がスムーズになります。

bash
# 編集予定のファイルを事前にチェックアウト
p4 edit //depot/project/src/...

# または特定ファイルのみ
p4 edit src/module.cpp src/module.h include/module.hpp

# チェックアウト済みを確認
p4 opened

# CLAUDE_CODE_PERFORCE_MODE 有効で Claude Code を起動
CLAUDE_CODE_PERFORCE_MODE=1 claude
# チェックアウト済みファイルは問題なく編集可能

CI/CD パイプラインでの活用

bash
#!/bin/bash
# Perforce ベースの CI/CD スクリプト例

# 環境変数を設定
export CLAUDE_CODE_PERFORCE_MODE=1
export P4CLIENT=my-workspace

# ファイルをチェックアウト
p4 edit //depot/project/config/...

# Claude Code で設定ファイルを更新(非対話型)
claude --print "config/settings.json を最新の要件に合わせて更新してください"

# 変更をサブミット
p4 submit -d "Claude Code による自動設定更新"

注意点

  • CLAUDE_CODE_PERFORCE_MODE は任意の値(例: 1trueyes)で有効化されます
  • この環境変数は Edit、Write、NotebookEdit の 3 つのツールに影響します
  • Perforce をインストールして設定済みの環境が必要です(p4 コマンドが利用可能であること)
  • 読み取り専用でないファイル(p4 edit 済みまたは追加ファイル)への操作には影響しません
  • git などの他のバージョン管理システムでは通常この設定は不要です
  • Perforce のワークスペース設定(P4CLIENTP4PORTP4USER など)は別途設定が必要です

関連情報