当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2018年11月17日土曜日

NotesDBとGitHubの連携方法

皆さん、こんにちは。

今日はNotes DBを開発する際の手法の一つについてご紹介します。

Notes/Dominoの8.5.2からソース管理ができるようになっています。
以前は、Domino Designer用にフリーのプラグインが用意されていましたが、 現在は利用できなくなっています。

今回は、GitHubのレポジトリとNotes DBを連携させてソース管理を行う方法を紹介します。
ソース管理は、Notes DBをオンディスクプロジェクトに変換して、その内容とGitHubのプロジェクトを同期させるようにして行います。
では、見ていきましょう。


なお、あらかじめThe world’s leading software development platform · GitHubサイトでアカウントを作成しておいてください。


1.GitHub Desktopをインストールする

GitHub Desktop | Simple collaboration from your desktopからツールがダウンロードできるのでダウンロードしてインストールします。
インストールはすぐに終わり、次の画面が表示されます。
GitHub Desktop初期画面

[File][Options]メニューをクリックします。
オプション画面が設定されるので、「GitHub.com」のところにある[Sign in]をクリックします(すでにログインされている場合は不要です)。
オプション画面
サインインに成功すると、初期画面に戻ります。
再度、[File][Options]メニューをクリックしてサインインできていることを確認します。
サインインできている




2.既存レポジトリの検索とクローンの作成

今回は、すでにプロジェクトが作成されているものとして話を進めます。
[File][Clone repository...]メニューをクリックします。
すると、自分のレポジトリの一覧(自分が作成したプロジェクト、参加しているプロジェクト内のレポジトリ)が表示されます。
自分が保有しているレポジトリの一覧

ローカルPCにコピーしたいレポジトリを選択したら、
レポジトリ情報をどこに格納するかを設定するLocal pathを確認して、[Clone]ボタンをクリックします。
すると、レポジトリをローカルPCにクローンし始めます。
クローン作成中...

レポジトリの大きさにもよりますがしばらくすると終わり、画面に戻ります。
画面は作成したクローンのローカルレポジトリ画面になります。
ローカルレポジトリ画面

レポジトリを追加したい場合は、さきほどの手順を繰り返します。
以下の図は、複数のレポジトリのクローンを作成した状態のものです。
ローカルレポジトリの一覧


3.レポジトリをインポートする

まず、Domino Designerを起動します。
[ウィンドウ][Eclipseビューの表示][パッケージエクスプローラー]でパッケージエクスプローラーのビューを表示します。
Domino Designerのパッケージエクスプローラービュー

そこで、マウスを右クリックするとメニューが表示されるので、[インポート]をクリックします。
インポートメニューをクリック

インポートダイアログが表示されるので、「既存プロジェクトをワークスペースへ」を選択して[次へ]をクリックします。
インポートダイアログ

「プロジェクトのインポート」ダイアログが表示されるので、「ルートディレクトリの選択」の横にある[参照]をクリックします。
プロジェクトのインポート

フォルダの参照画面が表示されるので、さきほど作成したクローンのフォルダにあるレポジトリフォルダを選択します。
※上位のフォルダを選択すると、レポジトリがすべて読み込まれて一度に複数のレポジトリをインポートできます。

すると、プロジェクトの部分にレポジトリの内容が表示されます。
※1つのプロジェクト内に複数のレポジトリが存在する場合もあります。
プロジェクトが追加された

Domino Designerに追加したいレポジトリにチェックをつけて(デフォルトではチェックがついています)、[終了]をクリックします。
すると、パッケージエクスプローラービューにインポートしたレポジトリ(Domino上ではオンディスクプロジェクトと呼びます)が表示されるようになります。
パッケージエクスプローラービューに表示された


4.Notes DBと関連付ける

インポートされたオンディスクプロジェクトを選択して、マウスで右クリックします。
メニューが表示されるので、[チーム開発][新規NSFに関連付ける]をクリックします。
新規NSFに関連付ける

新規アプリケーションダイアログが表示されるので、Notes DBのファイル名を入力して[終了]をクリックします。
※ローカルでもサーバーでも構いませんが、XPages等サーバー環境がないと動作確認が難しいものはDominoサーバー上に置くとよいでしょう。
新規アプリケーション

すると、Notes DBが新規に作成されてオンディスクプロジェクトの内容が反映されます。
Notes DBの作成が完了すると、パッケージエクスプローラービューにNotes DBが表示されます。また、オンディスクプロジェクトに「****.nsfと関連付けられている」という表示が追加されます。
Notes DBが関連付けられた


5.Notes DBの修正を反映する

Notes DBの修正は通常通りに行ってください。
デフォルトでは自動でオンディスクプロジェクトに反映されます。
それが嫌な場合は、Domino Designerのプリファレンス画面([ファイル][プリファレンス]メニューで開きます)で設定を変更できます。

プリファレンス画面で[Domino Designer][ソース制御]タブを開きます。
ソース制御画面

「変更時の設計要素の自動エクスポートを(NSFからディスクへ)有効にする」と「変更時の設計要素の自動インポートを(ディスクからNSFへ)有効にする」のチェックを外せばOKです。

この設定を行った場合、自動で反映されなくなるので、反映する場合は次の操作を行います。
Notes DBを選択して、マウスで右クリックします。
メニューから[チーム開発][オンディスクプロジェクトとの同期]をクリックします。
オンディスクプロジェクトとの同期

これでオンディスクプロジェクトにNotes DBの修正が反映されました。


6.ローカルレポジトリの修正をプッシュ(アップロード)する

GitHub Desktopの画面を見てみましょう。
Notes DBの修正が反映されているので、「Change」タブに修正内容が表示されています。
修正内容が問題ないのであればコミットしてGitHubにプッシュします。
ただし、このままではプッシュできません。

まず、この修正内容についての概要を入力します。
画面左下にある「Summary」に修正内容の概要を入力します。
修正内容についてコメントを入力する

そうしたら、[Commit to master]ボタンをクリックします。
※修正内容を取り消す場合は、修正箇所を右クリックして、[Discard changes...]をクリックします。

Commitが完了すると、 画面左下にコミットされた内容が表示されてサーバーにプッシュする準備ができます。
[Push origin]をクリックして、サーバーにプッシュします。
サーバーにプッシュする

しばらくすると、プッシュが終了して「Fetch origin」の表記に変わります。Change画面には何も表示されてないのがわかります。
プッシュ終了

GitHubのサイトを開いてプロジェクトを確認するとプッシュされたのがわかります。
プッシュされている


いかがでしょうか?
駆け足で説明してきましたが、なんとなく動きがつかめたでしょうか?
ツールがバージョンアップすれば、操作方法は多少変わるかもしれませんが、何をやったのかを理解しながら進めていけば大丈夫だと思います(実際に何度かGitHub Desktopはインターフェースが変更されましたが、ちゃんとできました)。


オンディスクプロジェクトはやり方によっては便利に使えます。
オープンなプロジェクトなどでは活躍する機会が増えると思いますので、是非覚えておきましょう。

企業内でのみソース制御(バージョン管理等)を行うのであれば、チームスタジオ製品のCiao! を使うと良いでしょう。






それでは今日はこの辺で...







Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: