Azure DevOpsとUnity

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

Unity のようなバイナリを多く含む上に大容量となるプロジェクト管理に良さそうなAzure DevOpsを試してみたMEMOです。(ローカルはMac環境です)

 Unity TechnologiesとMicrosoftは8日(現地時間)、ゲーム開発エンジンのUnityとMicrosoft Azureとの提携を発表した。

とのことでUnityとMicrosoftが仲良くしていきそうというところで、少し期待しています。

Azure DevOpsにアカウント作成

Microsoftアカウントを使ってログインし、アカウントを作成しました。switch directory で複数のディレクトリに切り替えできるようなので、自分個人用プロジェクト用、共同開発用のように所属組織を分けて使えそう。UIもシンプルな感じですね。

「New project」を押してプロジェクトを作成し、ローカルにある既存のUnityプロジェクトを追加し、git管理できるようにしてみます。

01

Azure CLIとAzure DevOps 拡張機能

これをやっておかないとダメみたいなので、このページの通りにセットアップ

Azure CLI を使用して、Git リポジトリでコードを共有します。

Azure CLI のインストール

brew update && brew install azure-cli

Azure DevOps 拡張機能を追加

az extension add --name azure-devops

Azure CLIの確認

az login

ブラウザが開いてログインし、ターミナルに戻るとコマンドが実行されバージョン等が出力さればOK。

git-lfsのインストール

Git extension for versioning large files. Contribute to git-lfs/git-lfs development by creating an account on GitHub.
brew install git-lfs

ローカルリポジトリをAzure DevOpsにプッシュ

サイドメニューにある「Repos -> Files」を押すと、初期状態では、「(プロジェクト名) is empty. Add some code!」となり、「Clone to your computer」や「Push an existing repository form command line」とあります。今回はローカルにある既存のリポジトリをそのままここにプッシュしたいので、後者の方のコピーボタンを押します。

02

ターミナルを開き、cd でUnityプロジェクトのフォルダ(Assetsフォルダがあるフォルダ)に移動します。

そこで上記でコピーした

git remote add origin https://ディレクトリ名@dev.azure.com/ディレクトリ名/プロジェクト名/_git/リポジトリ名
git push -u origin --all

をペーストしてEnter。

ここでパスワードを聞かれますが、なんのパスワードを入れればいいのか迷います。「Generate Git Credentials」というところを押すと、ここで使うパスワードが生成されます。

03

Usernameも表示されますが、パスワードの方だけで良さそう。(GitHub Desktopの場合などユーザー名を入れねばならない場合は、Organization名がユーザー名のようです)

04

このパスワードを入れると処理されて、リモートに全てのブランチがプッシュされました。

あとは、SouceTreeなどでそのリポジトリを開いてみると、リモートもAzureDevOpsのものが追加されていると思います。

もし、上記の git remote コマンドを実行後、

Password for 'https://xxxxx@dev.azure.com': 
Enumerating objects: 233, done.
Counting objects: 100% (233/233), done.
Delta compression using up to 8 threads
Compressing objects: 100% (233/233), done.
Writing objects: 100% (233/233), 1.33 MiB | 2.41 MiB/s, done.
Total 233 (delta 78), reused 0 (delta 0), pack-reused 0

のところで停止したままになった場合、Azure CLI等がセットアップされてないからかもしれません。Azure CLIとAzure DevOps 拡張機能を入れて、再度やってみましょう。

追記:大きいファイルを含む場合、以下に情報がありやってみたところ、うまく行ったことがあります。

Developer Community
git config --global http.postBuffer 1048576000
事象gitで画像ファイルをプッシュしようとした際に下記のエラーメッセージが表示され、実行に失敗する。git.exe push --progress "origin" master:master…
git config http.postBuffer 52428800

のちにSourceTreeなどでプッシュする際にパスワードを聞かれた場合

上記セットアップ後、Git管理ツール(SourceTreeなど)でプッシュしようとするとパスワードを聞かれると思います。この際に上記のパスワードを入れたいところですが、もうわからなくなってると思います。

その場合は、DevOpsのユーザーセッティング(右上アイコンの左隣)から「Personal access tokens」を選び、「Git: https://dev.azure/cp,/xxx on the website」というところを選択し、Regenerateするとリセットした上でコピーできるようになります。それを入れましょう。

また、その際にキーチェーンに保存した場合、次回以降再度、RegenerateするとSourceTreeが前のパスワードを覚えてしまっていて、プッシュに失敗するようになります。この場合は、キーチェーンアクセスを開いて「sourcetree」 という文字列でフィルタすると「dev.azure.com Access Key for xxxx」というのがあると思いますので、削除するか変更内容を保存すると、再度プッシュするときに新しいパスワードを入れられるようになります。