今回は、mbedを使う際のオンライン開発環境Keil Studio Cloudの使い方のうち、プロジェクトの共有についての説明をしていきたいと思います。
そもそもKeilってなんぞや、とか、とりあえずプログラムを動かしたい、という方は入門編をご覧ください。
はじめに
従来型のmbed compilerでは、mbedのサイト上にプロジェクトをパブリッシュすることで、プロジェクトの他のメンバーと共有しながら開発ができたのですが、Keil Studio Cloudでは、githubを用いた共有が推奨されています。
そのマニュアルが英語版である上、画像なども少なくわかりにくいと感じたので、共有方法について引継ぎ資料としてここに残しておきたいと思います。
他にも同じことで困っている方がいらっしゃったら参考にしていただければ幸いです。
GitHubアカウントとの連携
まずは、keil StudioとGitHubのアカウントを連携させます。
前準備として、GitHubのアカウントを持ってない方は作ってください。(以下割愛)
GitHubのアカウントを作ったら、Keilを開き、左下にある人のマークから、人のマーク>Show User Profile>Connect to GitHub とクリックします。
すると、GitHubが立ち上がります。そこで自分のGithubアカウントにログインして、画面の指示に従ってポチポチしていくと、GitHubアカウントとの連携ができるようになります。
これが完了した状態で、人のマーク>Show User Profile をクリックすると、同期されたGitHubのアカウント名が出てきます。
MercurialをGitに変換しよう
KeilではGitでの共有を推奨しているのですが、mbed compilerから移植してきたものや、元々パブリッシュしてあったものについては、デフォルトでMercurialでの共有となっています。
そこで、MercurialをGitに変換する必要があります。
まず、エクスプローラーのActive Projectで共有したいプロジェクトを選択します。
左端のメニューの上から3番目の赤で囲った枝みたいなマーク(以後、共有マークと呼びます、界隈で呼び方あるのかな)をクリックすると、Source Controlページに移動します。
ここで、上の表示のSource Control: の横に書いてあるのが共有形式です。これが、Gitである場合はこの章はとばして「マスターに中身を追加する」まで進んでください。
Mercurialだった場合は以下のように変換を行います。
Source Control: の行の一番右にある...をクリック(めちゃくちゃ見つけにくい)
新たに表示された Convert to a Git Repository and Fork on GitHub をクリック
すると、このような表示が出てくるので、レポジトリの名前と説明を記載しNextをクリックします。プライベートかパブリックかは各自設定してください。
すると、次にダイアログが出てきます。
mbedプロジェクトを編集した全作者の一覧が出てくるので、GitHubのユーザー名がわかる場合は入力しておきます(任意)。そして、Migrate nowボタンを押すことで、変換が完了します。
これでGitに変換してGitにあげることができました。
新たなプロジェクトをGitHubに投稿する
続いては、新しいプロジェクトの場合です。
この場合、共有ボタンを押してSource Controlを開くと以下のように表示されます。
ここで、Publish Projectをクリックします。
出てきたダイアログにプロジェクト名や説明を入力してPublishボタンを押すと完了です。
Source Control: の横にGitという表示が出てきます。
マスターに中身を追加する
さあ、ここまできてやっと下ごしらえが終わりです。
この状態では、プロジェクトという箱はできたものの、中にファイルは入っていない状態です。
共有ボタンを押して再度 ”Source Control: Git” と表示されることを確認してください。
確認出来たら、Changeと書いてある横の+マーク(Stage All Changes)をクリックします。すると、全てのファイルがStaged changesに入ります。
(ここでファイルを一つずつ+マークを押して、一部のファイルだけStageに含めることもできます)
追加(変更)したいファイルをStaged changesに入れたら、”Staged changes”と書いてある上にあるMessageと書いてある部分にプロジェクトのマスターの説明を記載します。
その後、その上にある✓マーク(commitボタン)をクリックすることでマスターのコミットが完了し、プロジェクトに中身が入ります。
ブランチを編集する
見事、プロジェクトと中身をGitHubに共有できてめでたしめでたし!と思いきや、これはまだ序の口です。
そもそも何のためにプロジェクトを共有したのかといったら共同で編集するためです。
共同編集するのにはマスターではなくブランチを編集してそれをマージすることが推奨されているので、これをやっていきたいと思います。
というか、ここまで何の説明もなくマスターとかブランチとか用語を使っていたのですが、「マスターって何だよ」って思った方、疑問を放っておけない姿勢は大事です。
ただ、連日ブログを書いている筆者のエネルギーの都合で割愛します。googleで”GitHub マスター”とかで調べてみてください。
では、本題のブランチの編集に移ります。
まずは編集するブランチを作成せねばなりません。
下の青いラベルの所にあるmaster(あるいはmain)をクリックします。
(このボタンがまじで見つかりにくい)
すると、上の部分にcreate new branchというボタンが現れるので、ボタンをクリックして、その上にあるワードボックスにブランチ名を記載してからエンターを押すことでブランチが作れ、自動的に今作ったブランチに移動します。
この時、先ほどmaster(あるいはmain)と書いてあったラベル部分が新しいブランチの名前になっていると思います。
今回はsampleという名前のブランチにしました。
そして、Sみたいなボタンを押してエクスプローラーを開き、好きなようにプロジェクトを編集します。
編集が終わったら共有ボタンを押してSource Controlを開きます。
すると、Changesの欄に編集したファイルの一覧が表示されていると思います。
今回はmain.cppを編集しました。
ここまでできたら、masterをGitHubにあげたときと同様に、編集したファイルの+ボタンを押して、Staged changesにあげ、コミットの際のメッセージを入れてcommitボタンを押すことでコミットが完了します。
また、Source Controlの…ボタンを押すと出てくるメニューから、色々なことができます(雑)。
ブランチをマスターに統合する
さあ、ついに最終盤です。
ここまでブランチを編集してきましたが、編集したブランチの内容で決定したら、ブランチをマスターに統合します。
画面下の青いメニューのブランチ名をクリックすると、ブランチの切り替えの選択が出てくるのでmasterに切り替えます。
そして、Source Controlの…ボタンを押すと出てくるメニューからMergeを選択すると、どのブランチをMergeするのか選択できるようになるので、ここでは先ほど編集したsampleを選択します。
すると、Mergeすることができました。
そして、最後にSource Controlの…ボタンを押すと出てくるメニューから、Pushを押すことで、リモートリポジトリを更新することができます。
終わりに
mbed compilerの廃止によって大きな変化があったオンラインでの共同開発環境ですが、GitHubを推奨するようになったことで、見方によってはGitHubの学習になると捉えることもできます。
最初の使い方こそ難しいですが、使い方に慣れれば便利な点もたくさんあります。
これからもmbedなどを使って開発する場合には、ぜひKeil Studioだけでなく、GitHubの使い方もマスターして、苦しい楽しい開発ライフを送ってください!