English Japanese
English Japanese

git


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リリースに適用可能です:

  1. バージョンが一致するJGit CoreおよびJGit Apache SSHD Based SSH Supportライブラリをダウンロードします。

  2. 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つの方法があります:

  1. Git管理下にない既存のRobotプロジェクトからリポジトリを初期化する。

  2. すでにGit管理下にある別のRobotプロジェクトからリポジトリをクローンする。

他の人からRobotプロジェクトのコピーを入手し、それがGitによって管理されているかどうか分からない場合は、プロジェクトツリーのルートノードの見た目を確認してください:

git_project_root.png

2.1 リポジトリの初期化

新規作成したプロジェクト用にGitリポジトリを初期化するには、New Projectウィンドウの下部にあるチェックボックスを選択します:

git_new_project.png

既存のプロジェクトの場合は、メインアプリケーションメニュー、またはプロジェクトのルートノードを右クリックしたときに表示されるコンテキストメニューのいずれかで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 プロジェクトをクローンするには、そのホームフォルダを選択します:

git_clone_local.png

リモートリポジトリをクローンするには、"Remote repository"オプションを選択し、リポジトリのアドレスと認証情報を入力します:

git_clone_remote.png

Robotは以下のプロトコルをサポートしています:

  • HTTP

  • HTTPS

  • SSHは間接的にサポートされています。有効にするには、sshバイナリをインストールし(例えばOpenSSH clientの一部として提供されています)、Robotを起動する前にそのバイナリを指すGIT_SSHというシステム変数を作成する必要があります。MS Windowsでの例:

    git_ssh_variable.png

GitHub固有の情報:

GitHubプロジェクトは、読み取り専用アクセスにはHTTPアクセスを、リポジトリの完全な制御にはHTTPSまたはSSHを提供するように設定できます。2021年8月13日以降、セキュリティ上の理由により、GitHubはGitHubアカウントのパスワードを使用したHTTPS経由の認証をサポートしなくなりました。ただし、Personal Access Tokenを生成し、パスワードの代わりに使用できます。上記の"Remote Repository"のスクリーンショットは、そのようなアクセスの例を示しています。GitHubへのHTTPSおよびSSHアクセスの詳細については、このStackOverflow postを参照してください。

ソースリポジトリを指定してNextをクリックした後、クローンするブランチを選択する必要があります:

git_clone_branches.png

最終画面では、リポジトリのクローン先となるターゲットパスとフォルダ名を選択できます。クローン元の元のリポジトリの名前("Remote name")を選択することもできます。デフォルト名はoriginです。ほとんどのドキュメントや例でこの名前が使用されているため、そのまま使用することをお勧めします:

git_clone_target.png

リポジトリをクローンするにはFinishをクリックします。

3. Gitアクション

Git関連のアクションはGitメニューグループから利用できます。本書ではこれを"Git menu"と呼びます。以下のいくつかの場所から利用できます:

  • 上部のアプリケーションメニューにある"Git"グループ、

  • プロジェクトツリーノードのコンテキスト(右クリック)メニュー、

  • 上部のリボンバー(ツールバー)からも、プロジェクトツリーの選択に応じた特定のアクションにアクセスできます。

これら3つのメニューはすべて、選択したGitアクションをプロジェクトツリーで選択されたファイルに適用します。Clone やManage Ignore Rulesのように、ファイル固有ではないいくつかの例外があります。これらは常に利用可能です。

git_menus_1.png

Gitメニューは、スクリプトエディタのタブ(ファイル名が表示されている上部のタブ)を右クリックしたときに表示されるコンテキストメニューからも利用できます。このメニュー内のファイル固有のアクションは、エディタのファイルのみに適用されます。

git_menus_2.png

4. ファイルの操作

新しいファイル(スクリプト、workitem、またはコンポーネント画像)を作成すると、プロジェクトツリーに緑色のクエスチョンマークのバッジが表示されます。これは、そのファイルがまだGitで追跡されていないことを示します。

git_file_untracked2.png

ファイルをインデックス(ステージングエリア)に追加するには、GitメニューからAdd 項目を選択します。 バッジが単色の緑色に変わり、ファイルが追加された(追跡されている)がまだコミットされていないことを示します。

git_file_added.png


ファイルをコミットするにはCommit項目を選択します。厳密には、コミット前にファイルをAdd する必要がありますが、必要な場合はRobotが自動的に行います。コミットが完了するとバッジは消えます。ファイルに変更がないため、ツリーノードはデフォルトの色とアイコンで表示されます。

git_file_unchanged.png


スクリプトを編集して変更を保存すると、青色のバッジが付きます。これは、ファイルが変更され、再度コミット可能であることを示します。

git_file_modified.png

ファイルが取り得る状態はさらに2つあります:

  • 競合しているファイルは赤色のバッジが付きます。これは通常、ファイルのマージの結果です。

  • 無視されているファイルは、.gitignoreファイル内のエントリによってGitに無視されるようにされたファイルです。GitメニューのIgnore項目を選択することで、ファイルを無視対象に設定できます。また、"Manage Ignore Rules"項目からファイルを手動で編集することもできます。無視されているファイルにはバッジが付きませんが、テキストがグレーで表示されます。

以下は、考えられるすべてのファイル状態を示すサンプルのスクリーンショットです:

git_file_states.png