4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【UiPath Studio】バージョン管理にSVNを使ってみる。

Last updated at Posted at 2023-09-06

はじめに

UiPath StudioにはGitやSVNバージョン管理ツールとの連携機能が用意されています。
現在ではGitをご利用されるケースが多いかもしれません。

UiPath StudioのSVN機能の情報が少ないため、この機能を使って何ができるか、どんな操作感なのか、などを確認していきます。
SVNはSubversion(サブバージョン)の略です。

UiPath StudioのSVN機能の確認を目的としており、SVNサーバーの導入手順は省略します。

SVN連携機能の有効化の手順

UiPath Studioはv23.4を利用しています。

ツール > プラグイン > ソース管理プラグイン から SVN を選択します。

image.png

SVN機能が有効化されると、下図の右クリック メニューが表示されるようになります。
image.png

xaml編集後のアイコン表示
編集後、Studioの画面からファイルの状態を示すアイコンの表示となります。

Main.xamlを更新した状態。
image.png

追加シーケンス.xamlを追加した状態。
image.png

Studio下部のペンのマーク。(下図は、2件の未コミット対象があることを示してます)
image.png

よくあるシナリオに沿ったStudioのSVN機能の使い方

全体的に チェックインコミット という2種類の表現、表示があります。同じ操作(リポジトリに修正を登録)を指しているようです。

★シナリオ1: 開発済のプロジェクトをSVNサーバーへコミットする。

SVNで管理したいプロジェクトを開き、Studio下部の以下のメニューを選択します。

+ソース管理に追加 > SVNに追加
image.png

表示されたダイアログに必要な情報を入力します。
image.png

項目名 入力値 補足説明
リポジトリURL SVNサーバーのURLを入力。 当検証ではhttpプロトコル、ポート81で環境を使いました。
チェックアウト ディレクトリ ソースを置く自身のPCのパスを入力。 初期値としてプロジェクトのパスが入力されています。
資格情報を使用 SVNサーバーで認証する場合はチェックを入れる。
ユーザー SVNサーバーへ接続するユーザーを入力。 当検証ではsvnというユーザーを定義しています。
パスワード SVNサーバーへ接続するパスワードを入力。

SVNへチェックイン(コミット)をする対象を選択し、
コミットメッセージ (必須)へメッセージを入力、チェックイン ボタンを押下します。
image.png

SVNへチェックイン(コミット)をすると、該当のプロジェクトのフォルダに「.svn」というフォルダが作成されました。この中に接続の定義が作成されているようです。
image.png

★シナリオ2: 既にSVNサーバーにコミットされているプロジェクトを取得する。

チーム > SVNから開く を選択します。
image.png

表示されたダイアログに必要な情報を入力します。
image.png

直下にxamlが無い場合は下図が表示されますが気にしないくて良いです。
image.png

取得したプロジェクトを開き、Main.xamlを開いてみます。
image.png

以下のダイアログが表示されました。
image.png
最新バージョンをチェックアウトして編集 ボタンを押下して編集しようとすると、以下のダイアログが表示されます。
image.png
ロックを解除 ボタンを押下し、ロックを解除すると編集できます。

ロックを解除 については、以降に記載したコンフリクトの発生を考慮しながら選択する必要があります。できれば事前にロックしているユーザーを確認し、ロックを解除した状態にすることを依頼するべきです。

補足: ロック状態とは…

ロック状態 とはユーザーによって明示的に編集を宣言している状態です。

ファイルの左端に南京錠のアイコンがあります。
このアイコンが 青色 状態だと対象ファイルをロックしていることを示しています。
image.png

南京錠のアイコンが 灰色 の状態でクリックすると以下のダイアログが表示されます。
直接ファイルの編集ができない状態です。
image.png
image.png

この状態のファイルを右クリックすると、以下のメニューが表示されます。
「編集用にチェックアウト」 が表示されているのが差分です。
image.png

右クリックメニューにて、編集用にチェックアウト をすると…
image.png
南京錠のアイコンが青色に変わります。
image.png
右クリックメニューにて、編集を終了 をすると、元の灰色のアイコンに戻ります。
image.png

image.png
このチェックをオンにすると、常に編集用にロックした状態となります。
ファイルの南京錠アイコンは青色表示のままとなり、編集用にチェックアウト編集を終了 は表示されなくなります。

★シナリオ3: 修正のコンフリクト(競合)が発生する。

複数のユーザーが同じプログラムソースを同時にコミットしようとする操作を コンフリクト(競合) と言います。

コンフリクトが発生する条件下で、コミット操作をしようとすると以下のダイアログが表示されました。
image.png
以下のメッセージが表示され、このままではコンフリクトが解消できません。
OKボタン を押下します。
image.png

コンフリクトの解消のために、自身の変更を元に戻します。

元に戻す 操作により、自身の修正が消えてしまします。
元に戻す 前に自身の修正を手元にてバックアップしておきましょう。

右クリックメニューの 元に戻す を選択します。
image.png

元に戻す 対象のリソースを選択し、元に戻す ボタンを押下します。
image.png
変更を元に戻すことで、自身の修正を破棄します。

image.png
右クリックメニューの 最新バージョンを取得 を選択し、
先にコミットされた内容を取り込みます。

その後、改めて自身の修正を反映 → コミット、という手順を実施しコンフリクトが解消しました。

★シナリオ3: 修正をサーバーへ登録する。

右クリックメニューの チェックイン を選択します。
image.png
コミットメッセージ を入力し チェックイン ボタンを押下します。
image.png

★シナリオ4: 履歴を確認する。

右クリックメニューの 変更を表示 を選択します。
image.png

チェックイン(コミット)の情報が確認できます。
いずれかの行をクリックすると…
image.png

変更内容の差分が表示されます。
image.png

右クリックメニューの 「変更を表示」 でも変更内容の確認が可能です。

image.png
右クリックメニューの 変更を表示 を選択すると、即座に差分が確認できます。
image.png

補足: SVNの仕組みについて、イメージで理解してみます。

これらの挙動や、運用時の注意点、Gitとの違いなどを理解するためにはSVN仕組みを大まかに知ることが必要です。

Gitのイメージ

分散型と言われ、その名のとおりクライアント(利用者の端末)側にもリポジトリを持っています。
image.png

SVNのイメージ

集中型と言われ、その名のとおりリポジトリはサーバー側に1つという構造です。
image.png

こういった基本的な仕組みの違いを背景にしつつ…

  • Gitの方が多機能で柔軟性が高い。
  • SVNは機能はシンプルですが、サーバーを皆で同期して利用するため注意が必要。

…といった違いがあります。
SVNはサーバー上にリポジトリが1つしかないことにより、Gitよりもこまめにサーバーと同期をしないとコンフリクト(利用者同時の競合)を発生しやすくなります。
ロック機能 もSVNが集中型であるため重要な役割を果たしています。

まとめ

StudioのSVN機能を確認しました。
UiPath StudioのSVN機能をぜひご活用ください。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?