こん○○は、よふかしわーくすのよふかしさんです
自作プログラムのソースコードはどうやって構成管理されてますか?
よふかしさんの場合、まぁ自分でちょこっと遊んでいる程度のコードだし
トラブったときのために一定のタイミングでフォルダ毎コピーしておけばいいや
ってな具合でした
なんですが
やっぱり変更していないファイルも重複保存することになるのでストレージ容量を圧迫するし
細かく管理できていないので、この変更ってどういう目的で実施したんだっけ?
とかなっちゃって、一定期間が経過すると思い出すのも地味に時間が掛かる…
という訳で、なにはともわれ、ソースコードの管理を開始していきたいと思います
どの構成管理ツールを使うか?
今回は、Git、Subversion、Perforceを題材として
軽く調べてまとめてみました
Git | Subversion (SVN) | Perforce (Helix Core) | |
---|---|---|---|
バージョン管理タイプ | 分散型 (DVCS) | 中央集権型 (CVCS) | 中央集権型 (CVCS) |
ブランチとマージ | 高度なブランチとマージ機能 | シンプルなブランチとマージ | 管理が容易なストリームを使用 |
ステージングエリア | あり | なし | なし |
パフォーマンス | ローカル操作が高速 | サーバー依存、ローカル操作は限定的 | 大規模リポジトリと多数のユーザーに最適化 |
ファイル管理 | テキストファイルに強み | テキストファイルに強み | バイナリファイルに強み |
設定の容易さ | 初期設定が複雑 | 初期設定が容易 | 設定が複雑 |
スケーラビリティ | 中小規模から大規模プロジェクトまで対応 | 中規模プロジェクトに適している | 大規模プロジェクトに最適 |
コミュニティとサポート | 非常に大きく、リソースが豊富 | コミュニティが小さい | 専門的なサポートが提供されることが多い |
ファイルロック | なし | なし | あり |
プラットフォームと連携 | GitHub、GitLab、Bitbucketなどと広範に連携 | 一部のプラットフォームと連携 | 専用のプラットフォームとの連携 |
GitHubのユーザー数が1億人以上いることを含めて考えると
ユーザー数が一番多く、最も広く使用されているのはGitであることは間違いなさそうです
Gitはオープンソースの個人開発のユーザーが多いのに対して
SubversionやPerforceはより企業向けとして採用されていると言えそうです
という訳で、今回よふかしさんは
個人開発のソースコードの構成管理にPerforceを使用してみたいと思います()←え?
Perforce(Helix Core/P4D/P4V)は無償で使用できる
一旦、名称の整理をしておきます
- 元々は、Perforce社のPerforceという製品だった
- その後、Perforce社のHelix Coreという新しい製品名に変更された
ブランド名は変更されたものの、Perforceという呼称が未だに一般化しているみたいなので
この記事ではPerforceという記載で進めます
無償使用に関して、Perforceのfree versionの解説ページに記述がありました
抜粋するとこんな感じ
5ユーザー、20ワークスペースまでは無料で使える様です

というわけで、インストールと設定をしていきたいと思います
サーバーツール(P4D)をインストールする
中央集権型 (CVCS)なので、サーバーツールとクライアントツールの2つが必要になります
今回はこれらを1つのローカルPC内に作って運用していきたいと思います
まずは、サーバーツールである、P4Dをインストールしていきます
公式での最新版のDLは下記です
2025年3月時点では、Version 2024.2/272646 というのがDLされます
DL後のプロパティでは232.42.6と表示されます
うーん、表記がアンマッチでわかりづらい…
Perforceの日本代理店である東陽テクニカさんのページからもDLできます
この後にインストールするクライアントツール、P4Vの日本語化をしたいので
今回は東陽テクニカさんで記載されているちょっと古いバージョンに従ってやってみます
上記からDLページにアクセスすると、P4Dのzip版として、2023.2、というのがDLできます

ちなみに、ファイルのプロパティでは、232.32.11.0になってます
なので、少なくともちょっと古いバージョンですね

あとは東陽テクニカさんの手順通りにインストールしていきます
次へ

Changeボタンを押して、データ管理するフォルダを選択します
今回は、”C:\p4″ としました

サーバと記載のあるポート番号は任意で設定
要はこのポートを毎にワークスペース/depotが生成されます
Git的に言うとディポ=リポジトリです
ユーザー名はわかりやすい個人名などを入力します
テキスト編集アプリケーションは、ソースコードを書くスタンダードのツールを指定しておくとよいでしょう

インストールをクリック


結構すぐに終わります、終了をクリック

サーバーツール(P4D)をUnicodeモードに設定
Perforceは公式では日本語化パッチを提供していないです
日本代理店の東陽テクニカさんが独自に対応、配布しています
日本語を扱うためにはP4DをUnicodeモードに設定変更が必要ですので、それをやっていきます
コマンドプロンプトを管理者権限で起動して、下記コードを実行します
Perforceサーバーを停止
sc stop Perforce

c:\p4のフォルダの中身がこんな感じですが、ほとんど削除してしまいます

- 削除対象のフォルダとファイル
・”db.”から始まる全てのファイル
・journal
・log
・server.locks(フォルダ)
自動で実行できるバッチを作成しました
今回の例では、c:\p4にインストールしている前提なので、
そのパスは適宜書き換えた上で、コマンドプロンプトに張り付けて実行してもらえればOKです
@echo off
REM フォルダパスを変数に設定(インストール時の指定パスに書き換えてください)
set P4_DIR=c:\p4
REM "db."で始まる全てのファイルを削除
del /Q "%P4_DIR%\db.*"
REM journalファイルを削除
del /Q "%P4_DIR%\journal"
REM logファイルを削除
del /Q "%P4_DIR%\log"
REM server.locksフォルダを削除
rd /S /Q "%P4_DIR%\server.locks"
echo 指定されたファイルとフォルダの削除が完了しました。
pause
Unicodeモードでデータベースを構築します
p4d -r C:\p4 -xi

Perforceサーバーを起動します
sc start Perforce

Unicodeモードで起動しているかを確認します
p4 -Ztag info

… serverName Perforce
… unicode enabled
が表示されていれば成功です
クライアントツール(P4V)をインストールする
公式だと下記からDLできます
Versionは、2024.4/2711678となっています
東陽テクニカさんのページだと、2020.1が日本語化に対応している最新バージョンとの解説があります
なんですが、製品DLページに行くともっと新しい、2023.4のものがあります
今回はこちらを使用していくことにします
Helix_Visual_Client_for_Windows.zip、をDLして、p4vinst64.exeを実行します
プロパティ上でのバージョンは、234.255.8838.0です
次へ

サーバー側をインストールするときの設定が引き継がれて表示されます
次へ

インストールをクリック


これも結構すぐに終わります

クライアントツール(P4V)を立ち上げる
インストールが終わったクライアントツール(P4V)を立ち上げます

OKを押すと、エンコーディングを聞かれます

今回は、アプリ系を管理したいのでほぼUTF-8で作っているので変更します

Userがいないって怒られるので作ります

Userの横のNewボタンをクリック、必要事項を記入します
パスワード以外は必須入力です

これでPerforceにログインできます
オートアップデートをするか聞かれますが、今回は日本語Versionを使い続けたいのでNoを選択

情報提供については任意で…今回はNoを選択

すると、こんな感じです

クライアントツール(P4V)の日本語化
2023.4に対応した日本語化パックをDLします

Helix_Visual_Client_for_Windows_jppack.zip、をDLして、p4_jppack_inst.batを実行します
y/nを聞かれますが、全てyを押してEnterです

無事に問題なく、P4Vが日本語化できました

クライアントツール(P4V)の初期設定
この辺りは好みのところもあるのですが、、、設定します
まずは、”ビュー”メニューから、履歴、サブミット済みチェンジリスト、ワークスペースをそれぞれ選択して、タブを表示させておきます

やり方は色々ありますが、”ディポ”の、”(ワークスペースが選択されていません)”を選択して、”新しいワークスペース…”をクリック

ワークスペース名、ワークスペースルートを任意に設定します
ユーザー名_HOST名_PORT名、にしておくと
後々別の人、別のPCから扱う時に区別ができるのでよいかと思います

詳細タブに移動します
下記2つにチェックを入れます
・変更日付
・ディレクトリ削除
サブミット時のプルダウンメニューから、”変更していないファイルを元に戻す”を選択します

するとファイル選択ウィザードがでてきますが、一旦キャンセルします

元のウィンドウに戻ると、ワークスペースが正しく作成できたことが確認できます

クライアントツール(P4V)に最初のデータをサブミット
ひとまず、何か入れてみましょう
今回は、以前作成した”exo_comb_videos”のファイルを入れてみます
ワークスペースタブで表示されているフォルダを確認、エクスプローラで開きます

今回は、その中に01_exo0_comb_videos、というフォルダを作成して
構成管理したいファイルを入れました

ワークスペースのフォルダを選択した状態で、アクション→追加目的でマーキングを選択
フォルダを右クリックしても同様のメニューが表示されます

OKを選択

そうすると、作業中のタブに、追加されたファイルが表示されます
ここで、defaultのところを右クリックして、サブミットを選択

チェンジリストの説明を入力、の欄に、任意のわかりやすいコメントを入れてサブミットをクリック

これでdepotにサブミットされました

次に、新しいバージョンのファイルを登録します
エクスプローラでワークスペースのファイルを更新し
depotタブの当該フォルダを右クリックして、チェックアウトを選択

同時並行的に作業を進める場合、作業中チェンジリストを分けますが、
今回は単一の作業なので、defaultのままOKを選択

すると、作業中のタブに全部のファイルがチェックアウトされた表示になります
ここで、defaultを右クリックして…

変更していないファイルを元に戻す、を選択すると…

今回変更したファイルだけが残ります
この場合は、exo_comb_videos.pyだけが残りました

また、任意のわかりやすいコメントを入れてサブミットします

終わりに
という訳で
今回はPerforceの初期導入の手順を解説してみました
共同作業のない個人作業向けの場合は
ローカルPC内にサーバー(P4D)をインストール/設定して
クライアント(P4V)も同じPC内にインストール/設定する
というやり方でサーバーは立てないで使用可能です
複数人で作業する場合は共有サーバーにP4Dを立てると
無償版の規約範囲内では活用できそうです
Gitの方がメジャーですが、Perforceは結構直感的にも扱いやすいのと
差分やブランチからの反映など、履歴が視覚的にわかりやすいと感じています
今後は、同じようにGitとPerforceを両方使ってみて、
その違いなども解説できたらな、と思ってます。。。
公開日時:2025/03/10 1:26:34
コメント