gtmf 2016:perforce helixによるgit環境の改善と拡張...
TRANSCRIPT
Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.
Perforce Helix によるGit 環境の改善と拡張
GTMF 2016 in OsakaGTMF 2016 in Tokyo
株式会社東陽テクニカソフトウェア・ソリューション
Copyright © 2016 TOYO Corporation. All Rights Reserved.
はじめにGit 環境における困りごとGit 環境の改善と拡張おわりに
アジェンダ
2
Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.
はじめに
Copyright © 2016 TOYO Corporation. All Rights Reserved. 4
Perforce Helix は、大規模開発にも対応できる高速なバージョン管理ツール
ユーザ事例: NVIDIAリポジトリサイズ 935TB 、 47 万 5000 コミット /日、 8000 ユーザで運用Perforce Helix ユーザカンファレンス MERGE 2016 よりhttp://www.slideshare.net/perforce/the-rise-of-the-monorepo-at-nvidia
開発元:米国 Perforce Software Inc.
Perforce Helix とは
Copyright © 2016 TOYO Corporation. All Rights Reserved.
本セッションのポイント
Git を用いたバージョン管理の世界とPerforce Helix を用いたバージョン管理の世界
をシームレスに連携することによるメリットのご
紹介
5
Copyright © 2016 TOYO Corporation. All Rights Reserved.
題材となる環境( 1/2 )Git クライアン
トPerforce クライア
ント
GitSwarm+
(Git リポジトリ )
Perforce サーバ+
(Perforce リポジトリ )
6
Copyright © 2016 TOYO Corporation. All Rights Reserved.
題材となる環境( 2/2 )
Git ベースの環境
Git クライアント SourceTree, TortoiseGit, TOWER, git コマンドなどの任意の Git クライアント
GitSwarm Perforce Helix との自動同期機能を備えたGitLab ベースの Git のリポジトリ管理&コラボレーション支援ツール
Git リポジトリ Git におけるファイルデータとメタデータの格納庫
Perforce Helix ベースの環境
Perforce クライアント
P4V, p4 コマンド , Unity 連携 (P4Connect), Photoshop 連携(P4GT) などの任意の Perforce クライアント
Perforce サーバ Perforce Helix のリポジトリ管理
Perforce リポジトリ
Perforce Helix におけるファイルデータとメタデータの格納庫
7
Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git 環境における困りごと
Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git ベースの環境 / Perforce ベースの環境
Git ベースの環境の特長分散型のバージョン管理を実現小容量のファイルを軽快に管理プルリクエストによる明瞭なワークフロー
Perforce ベースの環境の特長中央集権型のバージョン管理を実現大容量のファイルを軽快に管理リポジトリの大規模化に対応可能ガバナンスを効かせやすい
9
Copyright © 2016 TOYO Corporation. All Rights Reserved.
リポジトリが肥大化しやすくディスクを圧迫するプロジェクト間で変更を共有するには、一つのリポジトリにまとめるしかなく、肥大化が進むプログラマの資産とアーティストの資産を一元管理しようとすると肥大化が進む
結果として、リポジトリが散在しやすく管理に負担がかかる
Git 環境における困りごと
10
Copyright © 2016 TOYO Corporation. All Rights Reserved.
課題派生開発や流用開発の場合、既存リポジトリのクローンを作成してから作りこむことになるが、これを繰り返していくと、リポジトリのサイズが次第に大きくなっていく共通項になるモジュール、チームAだけが必要とするモジュール、チーム B だけが必要とするモジュールの3種類のモジュールがあったとして、共通項への変更を共有するためには、3種類のモジュールを一つのリポジトリに収めておかなければならない特定のディレクトリ配下だけをもつリポジトリを作成することができず、ディスク容量を圧迫し、クローン元からのデータ転送量も増える
Perforce による解決既存のリポジトリから、必要なファイルだけを集めた新しいリポジトリを構築する手段を提供する
リポジトリの肥大化(変更の共有)
11
Copyright © 2016 TOYO Corporation. All Rights Reserved.
課題ソースコード(主にプログラマの資産)は Git で管理、バイナリ資産(主にアーティストの資産)は Git 以外で管理、
という形で管理系統を分けてしまうと、ソースコードとバイナリ資産の対応関係の把握が困難になる同じリポジトリで管理すると、リポジトリが肥大化する
Perforce による解決Git リポジトリと Perforce リポジトリを同期して、 Perforce 内でプログラマの資産とアーティストの資産を統合するプログラマは、 Git を現状のまま使い続けるアーティストは、 Autodesk 製品、 Photoshop 、 Unreal Engine 、Unity と連携しつつ、 Perforce でバージョン管理を行う
リポジトリの肥大化(バイナリ資産との共存)
12
Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git 環境の改善と拡張
Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git と Perforce のシームレスなマッピング
Perforce のワークスペースにGit のリポジトリをマッピング
||GitSwarm は Perforce の
クライアントの一つとして振舞う
Perforce ワークスペース
14
GitSwarm Perforce サーバ
Copyright © 2016 TOYO Corporation. All Rights Reserved.
ディレクトリ群の柔軟な切り出し
Perforce のワークスペース
Perforce のワークスペースを用いて定義したディレクトリ群をGit のリポジトリとして切り出すことが可能
一部のディレクトリだけを
切り出すようなワークスペースを定義
15
Copyright © 2016 TOYO Corporation. All Rights Reserved.
Perforce は、 Git リポジトリ側を単なるクライアントとして扱う
柔軟なマッピングによって、自由な構造を獲得できる
Perforce を用いて、 Git リポジトリ群を統括できる
マッピングにおける3つのポイント
16
リポジトリの同期 リポジトリの統合 リポジトリの再構築
Copyright © 2016 TOYO Corporation. All Rights Reserved.
“Git World” と “ Perforce World” の橋渡し
git push の結果を
p4 sync で取り出し
※ 逆の流れも同様
17
Copyright © 2016 TOYO Corporation. All Rights Reserved.
git pull / git push による同期の一例
git pull ⇒ “Perforce” から” GitSwarm” への sync
git push ⇒ “GitSwarm” から” Perforce” へのsubmit
18
Copyright © 2016 TOYO Corporation. All Rights Reserved.
お互いのことを気にせず作業に集中
Git ユーザは、 Perforce のことを知らなくても OK!
Perforce ユーザは、 Git のことを知らなくても OK!
19
Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git らしさを、そのままの形で
branch, stash, rebase などを含むgit のコマンドをそのままの形で使用可能
GitSwarm Perforce サーバ
20
Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git リポジトリの作成
Git リポジトリ 兼 Perforce データの作成手段
GitHub などからインポート
任意の Git リポジトリからリポジトリを作成し、 Perforce ともマッピング
Perforce からインポート
Perforce 内のディレクトリ群を指定して Git リポジトリを作成
21
Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git リポジトリ群の統合
Helix サーバ
Perforce 内のあるディレクトリ配下に、 Git リポジトリ群とマッピングしたディレクトリ群を配置して、統合することが可能
22
ディレクトリ A ディレクトリ Cディレクトリ B
ディレクトリ X
Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git リポジトリ群の再構成
Helix サーバ
統合した Git リポジトリ群から必要なディレクトリを切り出してリポジトリを再構成することが可能同一ディレクトリを Perforce 内で共有しつつ、別々のGit リポジトリとして切り出すことも可能
23
A B
AB C
B C
Copyright © 2016 TOYO Corporation. All Rights Reserved.
参考 :Protected Branch によるアクセス制御
全リポジトリを対象にしたアクセス権の付与
特定のリポジトリを対象にしたアクセス権の付与
24
全リポジトリに影響する権限グループ
特定のリポジトリに影響する権限グループ
Copyright © 2016 TOYO Corporation. All Rights Reserved.
参考 : 権限がない人からの Push の差し止め
25
Copyright © 2016 TOYO Corporation. All Rights Reserved.
参考 : 権限のある人の Push の許可
26
Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.
おわりに
Copyright © 2016 TOYO Corporation. All Rights Reserved.
Git リポジトリの散在や肥大化を防ぎつつ、柔軟なバージョン管理戦略を策定することができます
1 Git と Perforce のシームレスな同期
2 Perforce による Git リポジトリ群の一元管理
3 チーム資産の共有と適切な構成の柔軟な切り出し
+ Push 権限の制御によるリポジトリの保護
28
Copyright © 2016 TOYO Corporation. All Rights Reserved. 29
ご不明な点については、ご遠慮なくお問い合わせ下さい。営業窓口 : [email protected]技術窓口 : [email protected]: 03-3245-1248 (直通)
Perforce Helix評価版ユーザ数 5人以下、総ワークスペース数 20個以下ならば、他の機能制限はなく、無償で Helix をご使用いただけます詳しくは、弊社ホームページをご覧下さい。
http://www.toyo.co.jp/ss/products/detail/perforce
ご清聴、ありがとうございました