Git
1. 概要
Robot v7.1はGitバージョン管理システムをサポートしています。RobotのGUIでは、プロジェクトおよびコードエディタコンポーネントから直接Gitタスクを実行できます。このドキュメントでは、そのワークフローについて説明します。
RobotとGitの統合はJGitライブラリに基づいています。これはGitプロトコルの純粋なJava実装であるため、他のバイナリをインストールする必要はありません。ただし、RobotはGit機能のサブセットのみをサポートしているため、場合によっては別のGitクライアントが必要になることがあります。
Robotは、Java 8との後方互換性を維持するためにJGit v5 を統合しています。最新のJGit v6もテスト済みで、Robotと互換性があります。唯一の欠点は、JGit 6にはJava 11以降が必要な点です。JGit 6を使用する必要がある場合は、以下の手順に従ってください。この手順は、Macアプリケーション版を除くすべてのRobotリリースに適用可能です:
-
バージョンが一致するJGit CoreおよびJGit Apache SSHD Based SSH Supportライブラリをダウンロードします。
-
Robotのホームフォルダ内の
libs/org.eclipse.jgit*.jarおよびlibs/org.eclipse.jgit.ssh.apache*.jarライブラリを、ダウンロードしたものに置き換えます。
JGit 6を搭載したRobot Macアプリが必要な場合は、当社サポートまでお問い合わせください。
2. Gitリポジトリ
"Git repository"とは、Gitによって管理されるフォルダのことです。本書の文脈では、Git管理下に置かれたRobotプロジェクトディレクトリを指します。
Gitリポジトリを作成するには2つの方法があります:
-
Git管理下にない既存のRobotプロジェクトからリポジトリを初期化する。
-
すでにGit管理下にある別のRobotプロジェクトからリポジトリをクローンする。
他の人からRobotプロジェクトのコピーを入手し、それがGitによって管理されているかどうか分からない場合は、プロジェクトツリーのルートノードの見た目を確認してください:
2.1 リポジトリの初期化
新規作成したプロジェクト用にGitリポジトリを初期化するには、New Projectウィンドウの下部にあるチェックボックスを選択します:
既存のプロジェクトの場合は、メインアプリケーションメニュー、またはプロジェクトのルートノードを右クリックしたときに表示されるコンテキストメニューのいずれかでGit→Initialize...メニュー項目を選択します。ディレクトリの指定を求められた場合は、Gitサポート機能を完全に有効にするために、プロジェクトのホームフォルダを指定してください。
完了すると、Robotは一時ファイルを無視するようにGitリポジトリを更新するかどうかを尋ねます。これには通常、レポート、Image Doctorの記録、コンパイル済みのJavaクラス、バックアップファイルなどの実行出力が含まれます。また、Robotはプロジェクトディスクリプタtprproject.xmlもセッションごとに更新されるため、無視することを推奨します。
"Not Now" または"Skip"を選択した場合、後でプロジェクトのPropertiesウィンドウにある"Configure Git to ignore Robot temporary files" チェックボックスを使用して無視ファイルを更新できます。また、Git→Manage Ignore Rulesアクションを通じて無視ルールを手動で編集することもできます。
2.2 リポジトリのクローン
既存のリポジトリをクローンするには、メインメニューからGit→Clone Repository...を選択します。最初の画面では、クローン元を選択できます。ウィンドウはデフォルトでローカルリポジトリのクローンになっています。例えば、前の章で初期化したGitDemo プロジェクトをクローンするには、そのホームフォルダを選択します:
リモートリポジトリをクローンするには、"Remote repository"オプションを選択し、リポジトリのアドレスと認証情報を入力します:
Robotは以下のプロトコルをサポートしています:
-
HTTP
-
HTTPS
-
SSHは間接的にサポートされています。有効にするには、sshバイナリをインストールし(例えばOpenSSH clientの一部として提供されています)、Robotを起動する前にそのバイナリを指すGIT_SSHというシステム変数を作成する必要があります。MS Windowsでの例:
GitHub固有の情報:
GitHubプロジェクトは、読み取り専用アクセスにはHTTPアクセスを、リポジトリの完全な制御にはHTTPSまたはSSHを提供するように設定できます。2021年8月13日以降、セキュリティ上の理由により、GitHubはGitHubアカウントのパスワードを使用したHTTPS経由の認証をサポートしなくなりました。ただし、Personal Access Tokenを生成し、パスワードの代わりに使用できます。上記の"Remote Repository"のスクリーンショットは、そのようなアクセスの例を示しています。GitHubへのHTTPSおよびSSHアクセスの詳細については、このStackOverflow postを参照してください。
ソースリポジトリを指定してNextをクリックした後、クローンするブランチを選択する必要があります:
最終画面では、リポジトリのクローン先となるターゲットパスとフォルダ名を選択できます。クローン元の元のリポジトリの名前("Remote name")を選択することもできます。デフォルト名はoriginです。ほとんどのドキュメントや例でこの名前が使用されているため、そのまま使用することをお勧めします:
リポジトリをクローンするにはFinishをクリックします。
3. Gitアクション
Git関連のアクションはGitメニューグループから利用できます。本書ではこれを"Git menu"と呼びます。以下のいくつかの場所から利用できます:
-
上部のアプリケーションメニューにある"Git"グループ、
-
プロジェクトツリーノードのコンテキスト(右クリック)メニュー、
-
上部のリボンバー(ツールバー)からも、プロジェクトツリーの選択に応じた特定のアクションにアクセスできます。
これら3つのメニューはすべて、選択したGitアクションをプロジェクトツリーで選択されたファイルに適用します。Clone やManage Ignore Rulesのように、ファイル固有ではないいくつかの例外があります。これらは常に利用可能です。
Gitメニューは、スクリプトエディタのタブ(ファイル名が表示されている上部のタブ)を右クリックしたときに表示されるコンテキストメニューからも利用できます。このメニュー内のファイル固有のアクションは、エディタのファイルのみに適用されます。
4. ファイルの操作
新しいファイル(スクリプト、workitem、またはコンポーネント画像)を作成すると、プロジェクトツリーに緑色のクエスチョンマークのバッジが表示されます。これは、そのファイルがまだGitで追跡されていないことを示します。
ファイルをインデックス(ステージングエリア)に追加するには、GitメニューからAdd 項目を選択します。 バッジが単色の緑色に変わり、ファイルが追加された(追跡されている)がまだコミットされていないことを示します。
ファイルをコミットするにはCommit項目を選択します。厳密には、コミット前にファイルをAdd する必要がありますが、必要な場合はRobotが自動的に行います。コミットが完了するとバッジは消えます。ファイルに変更がないため、ツリーノードはデフォルトの色とアイコンで表示されます。
スクリプトを編集して変更を保存すると、青色のバッジが付きます。これは、ファイルが変更され、再度コミット可能であることを示します。
ファイルが取り得る状態はさらに2つあります:
-
競合しているファイルは赤色のバッジが付きます。これは通常、ファイルのマージの結果です。
-
無視されているファイルは、
.gitignoreファイル内のエントリによってGitに無視されるようにされたファイルです。GitメニューのIgnore項目を選択することで、ファイルを無視対象に設定できます。また、"Manage Ignore Rules"項目からファイルを手動で編集することもできます。無視されているファイルにはバッジが付きませんが、テキストがグレーで表示されます。
以下は、考えられるすべてのファイル状態を示すサンプルのスクリーンショットです: