29
Copyright © 2016 TOYO Corporation. All Rights Reserved. Copyright © 2016 TOYO Corporation. All Rights Reserved. Perforce Helix ににに Git にににににににに GTMF 2016 in Osaka GTMF 2016 in Tokyo 株株株株株株株株株株 株株株株株株 株株株株株株株

GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Embed Size (px)

Citation preview

Page 1: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.

Perforce Helix によるGit 環境の改善と拡張

GTMF 2016 in OsakaGTMF 2016 in Tokyo

株式会社東陽テクニカソフトウェア・ソリューション

Page 2: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

はじめにGit 環境における困りごとGit 環境の改善と拡張おわりに

アジェンダ

2

Page 3: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.

はじめに

Page 4: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

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 とは

Page 5: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

本セッションのポイント

Git を用いたバージョン管理の世界とPerforce Helix を用いたバージョン管理の世界

をシームレスに連携することによるメリットのご

紹介

5

Page 6: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

題材となる環境( 1/2 )Git クライアン

トPerforce クライア

ント

GitSwarm+

(Git リポジトリ )

Perforce サーバ+

(Perforce リポジトリ )

6

Page 7: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

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

Page 8: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git 環境における困りごと

Page 9: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git ベースの環境 / Perforce ベースの環境

Git ベースの環境の特長分散型のバージョン管理を実現小容量のファイルを軽快に管理プルリクエストによる明瞭なワークフロー

Perforce ベースの環境の特長中央集権型のバージョン管理を実現大容量のファイルを軽快に管理リポジトリの大規模化に対応可能ガバナンスを効かせやすい

9

Page 10: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

リポジトリが肥大化しやすくディスクを圧迫するプロジェクト間で変更を共有するには、一つのリポジトリにまとめるしかなく、肥大化が進むプログラマの資産とアーティストの資産を一元管理しようとすると肥大化が進む

結果として、リポジトリが散在しやすく管理に負担がかかる

Git 環境における困りごと

10

Page 11: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

課題派生開発や流用開発の場合、既存リポジトリのクローンを作成してから作りこむことになるが、これを繰り返していくと、リポジトリのサイズが次第に大きくなっていく共通項になるモジュール、チームAだけが必要とするモジュール、チーム B だけが必要とするモジュールの3種類のモジュールがあったとして、共通項への変更を共有するためには、3種類のモジュールを一つのリポジトリに収めておかなければならない特定のディレクトリ配下だけをもつリポジトリを作成することができず、ディスク容量を圧迫し、クローン元からのデータ転送量も増える

Perforce による解決既存のリポジトリから、必要なファイルだけを集めた新しいリポジトリを構築する手段を提供する

リポジトリの肥大化(変更の共有)

11

Page 12: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

課題ソースコード(主にプログラマの資産)は Git で管理、バイナリ資産(主にアーティストの資産)は Git 以外で管理、

という形で管理系統を分けてしまうと、ソースコードとバイナリ資産の対応関係の把握が困難になる同じリポジトリで管理すると、リポジトリが肥大化する

Perforce による解決Git リポジトリと Perforce リポジトリを同期して、 Perforce 内でプログラマの資産とアーティストの資産を統合するプログラマは、 Git を現状のまま使い続けるアーティストは、 Autodesk 製品、 Photoshop 、 Unreal Engine 、Unity と連携しつつ、 Perforce でバージョン管理を行う

リポジトリの肥大化(バイナリ資産との共存)

12

Page 13: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git 環境の改善と拡張

Page 14: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git と Perforce のシームレスなマッピング

Perforce のワークスペースにGit のリポジトリをマッピング

||GitSwarm は Perforce の

クライアントの一つとして振舞う

Perforce ワークスペース

14

GitSwarm Perforce サーバ

Page 15: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

ディレクトリ群の柔軟な切り出し

Perforce のワークスペース

Perforce のワークスペースを用いて定義したディレクトリ群をGit のリポジトリとして切り出すことが可能

一部のディレクトリだけを

切り出すようなワークスペースを定義

15

Page 16: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

Perforce は、 Git リポジトリ側を単なるクライアントとして扱う

柔軟なマッピングによって、自由な構造を獲得できる

Perforce を用いて、 Git リポジトリ群を統括できる

マッピングにおける3つのポイント

16

リポジトリの同期 リポジトリの統合 リポジトリの再構築

Page 17: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

“Git World” と “ Perforce World” の橋渡し

git push の結果を

p4 sync で取り出し

※ 逆の流れも同様

17

Page 18: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

git pull / git push による同期の一例

git pull ⇒ “Perforce” から” GitSwarm” への sync

git push ⇒ “GitSwarm” から” Perforce” へのsubmit

18

Page 19: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

お互いのことを気にせず作業に集中

Git ユーザは、 Perforce のことを知らなくても OK!

Perforce ユーザは、 Git のことを知らなくても OK!

19

Page 20: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git らしさを、そのままの形で

branch, stash, rebase などを含むgit のコマンドをそのままの形で使用可能

GitSwarm Perforce サーバ

20

Page 21: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git リポジトリの作成

Git リポジトリ 兼 Perforce データの作成手段

GitHub などからインポート

任意の Git リポジトリからリポジトリを作成し、 Perforce ともマッピング

Perforce からインポート

Perforce 内のディレクトリ群を指定して Git リポジトリを作成

21

Page 22: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git リポジトリ群の統合

Helix サーバ

Perforce 内のあるディレクトリ配下に、 Git リポジトリ群とマッピングしたディレクトリ群を配置して、統合することが可能

22

ディレクトリ A ディレクトリ Cディレクトリ B

ディレクトリ X

Page 23: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git リポジトリ群の再構成

Helix サーバ

統合した Git リポジトリ群から必要なディレクトリを切り出してリポジトリを再構成することが可能同一ディレクトリを Perforce 内で共有しつつ、別々のGit リポジトリとして切り出すことも可能

23

A B

AB C

B C

Page 24: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

参考 :Protected Branch によるアクセス制御

全リポジトリを対象にしたアクセス権の付与

特定のリポジトリを対象にしたアクセス権の付与

24

全リポジトリに影響する権限グループ

特定のリポジトリに影響する権限グループ

Page 25: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

参考 : 権限がない人からの Push の差し止め

25

Page 26: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

参考 : 権限のある人の Push の許可

26

Page 27: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.Copyright © 2016 TOYO Corporation. All Rights Reserved.

おわりに

Page 28: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

Copyright © 2016 TOYO Corporation. All Rights Reserved.

Git リポジトリの散在や肥大化を防ぎつつ、柔軟なバージョン管理戦略を策定することができます

1 Git と Perforce のシームレスな同期

2 Perforce による Git リポジトリ群の一元管理

3 チーム資産の共有と適切な構成の柔軟な切り出し

+ Push 権限の制御によるリポジトリの保護

28

Page 29: GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)

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

ご清聴、ありがとうございました