[17]Version Control Systems Integration in Studio-UiPath ARD Certification Training

前言:【【非原创】】UiPath Advanced RPA Developer Certification Training的课程资料机翻版。
课程链接:Link

1 关于本课程

本课程概述了可与 UiPath Studio 一起使用的版本控制系统,重点介绍您可以使用 Git 执行的主要操作。
您将在本课程中学到什么

在本课程结束时,您应该能够:

  • 解释什么是版本控制系统。
  • 识别集成在 UiPath Studio 中的版本控制系统。
  • 在版本控制系统集成中执行最重要的操作(我们将使用 Git 作为示例)。

2 概述

2.1 版本控制系统简介

2.1.1 什么是版本控制系统?

版本控制系统是软件开发团队用来管理大型项目协作的工具。
版本控制系统允许开发人员跟踪代码更改,查看代码的历史记录,并在需要时恢复到项目的先前版本。
以下是使用版本控制系统的一些好处:

  • 加强协作
    团队成员可以随时自由地处理任何文件,并在适当的时候将更改合并到一个通用版本中。
  • 存储版本
    只有当前版本存储在磁盘上,所有其他版本都在系统中。
  • 恢复以前的版本
    随时恢复文件的旧版本。
  • 跟踪不同的项目版本
    新版本通常与更改说明一起保存。还可以比较同一文件的版本。

UiPath Studio 集成的版本控制系统有 GitTFSSVN。与版本控制系统的连接是在项目级别完成的。要管理您的连接,请访问 Studio,转到 Backstage 视图,然后单击 Team 选项卡。

或者,状态栏中的“添加到源代码管理”按钮提供 Git Init复制到 Git添加到 TFS添加到 SVN 的快捷方式。

2.1.2 您应该选择哪种版本控制系统?

无论使用哪种版本控制系统,项目文件都存储在服务器上,您在本地计算机上完成工作后将文件推送到该服务器上。
但是,决定是使用 SVN 等集中式版本控制系统还是 Git 等分布式版本控制系统会影响您提交更改的方式。这将在本课程的后面介绍。

2.2 仔细看看 Git

2.2.1 Git概述

Git 是一个开源版本控制系统。 Git 是分布式的,与 SVN 和 CVS 等旧的集中式版本控制系统不同,它允许每个开发人员在本地拥有其代码存储库的完整历史记录。这使得存储库的初始克隆速度较慢,但​​随后的操作(例如commit, blame, diff, merge, and log)会显着加快。

Git 还对分支、合并和重写存储库历史记录有很好的支持。拉取请求是一项流行的功能,它允许团队在 Git 分支上进行协作并有效地审查彼此的代码。 Git 是世界上使用最广泛的版本控制系统,被认为是软件开发的现代标准。

2.2.2 Git 是如何工作的?

以下是 Git 工作原理的基本概述:

  • 使用 Git 托管工具创建存储库(项目)。
  • 将存储库复制或克隆到本地计算机。
  • 将文件添加到本地存储库并在本地提交(保存)更改。
  • 将您的更改推送到远程存储库。
  • 团队中的另一个开发人员可以将文件拉到他们的本地存储库并进行更改,然后他们可以提交和推送文件。
  • 他们还可以创建一个分支(替代),进行更改,提交更改。
  • 打开拉取请求(对主分支提出更改建议)。
  • 将您的分支合并到主分支。

2.2.3 SVN 和 Git 并行

  • SVN
    通过集中式系统,SVN 版本控制系统将所有文件和历史数据存储在中央服务器上。开发人员将他们的更改提交到这个中央服务器存储库。
    Trunk主干:主干是您当前稳定的代码和产品的中心。它只包含经过测试的完整代码。
    Branches分支:在此处添加新代码和功能。使用主干代码的副本,团队成员在分支中进行研究和开发。这允许每个团队成员在不干扰彼此进度的情况下处理增强的功能。
    Tags标签:标签是在给定时间点的分支的副本。标签不是在开发期间使用,而是在分支代码完成后部署期间使用。使用标签标记代码可以轻松查看,并在必要时还原您的代码。
  • GIT
    Git 使用一个中央存储库和一系列本地存储库。本地存储库是包含其完整更新历史记录的中央存储库的精确副本。
    Git 工作流程类似于 SVN,但有一个额外的步骤。要创建新功能,我们需要获取中央存储库的精确副本,以在您的本地机器上创建我们的本地存储库(将其视为我们的“本地主干”)。
    然后我们像在 SVN 中一样通过创建新的分支、标签等来处理我们的本地存储库。完成后,我们将我们的分支合并到我们的本地存储库(即本地主干)中。当我们准备好合并到中央存储库时,我们将更改从本地存储库推送到中央存储库。
    其中一些好处包括:
    • 提交更快。
    • 不再有单点故障。
    • 它可以离线使用。

3 使用 Git

3.1 将项目添加到 GitHub

视频演示 - 将项目添加到 GitHub

创建一个 GitHub 存储库,使用 Git Init 选项将我们的项目添加到一个新的本地 Git 存储库,并断开与源控制的连接。
在结束视频之前,让我们快速回顾一下我们学到的东西:

  • GitHub 存储库是从 GitHub 网页创建的,方法是添加名称、描述并选择其访问级别是公共的还是私有的。
  • 要将 Studio 项目连接到远程存储库,我们可以从主视图单击添加到源代码管理,或者进入后台视图并使用团队选项卡中的 Git 初始化选项。

3.2 克隆存储库、提交并推送到 GitHub

视频演示 - 克隆存储库、提交和推送到 GitHub
克隆存储库,将更改提交到本地存储库,更改最后一次提交,撤消更改并将最终更改推送到远程存储库。
让我们快速回顾一下我们学到的东西:

  • 要从远程 GIT 存储库开始处理项目,我们将从 GitHub 复制项目 URL,然后导航到 Studio Backstage 视图中的 Team 选项卡并单击 Clone Repository。这里我们只需要添加复制的 URL,设置在本地保存项目的路径,如果需要提供凭据,然后单击打开。
  • 项目上下文菜单中提供的关键版本控制操作是:提交、推送、拉取、显示历史记录、撤消和管理分支。(Commit, Push, Pull, Show History, Undo and Manage Branches. )

3.3 使用显示更改和解决冲突

视频演示 - Git 显示更改

演示如何使用文件差异和解决冲突。
视频抄本
您好,欢迎来到新的 UiPath 演示!
在本视频中,我们将学习如何检查项目的当前版本与远程存储库中的版本之间的差异以及如何解决冲突。
让我们从本地 GIT 存储库中打开我们的项目开始。
我们想确保我们有来自远程存储库的最新版本。
让我们导航到“项目”面板并右键单击项目名称。我们将选择拉。
接下来,我们要对项目进行一些更改。让我们在提取结构化数据活动之后立即在提取工作项工作流中添加日志消息。

此活动将记录提取的工作项的数量。
“提取的工作项计数:”+ WorkItems.Row.Count.ToString
我们要做的下一个更改是减少提取结构化数据活动的页面值之间的延迟。
我们将该值设置为 500 毫秒。
现在,让我们点击保存。
是时候检查此版本与远程存储库中的版本之间的差异了。
让我们回到 Project 面板,右键单击 Extract Work Items 工作流文件并选择 Show Changes,显示 Show Changes 窗口。
在左侧,我们可以看到来自服务器的 Extract Work Items 文件的版本。
在右侧,我们可以看到本地版本。
请注意,以绿色突出显示的活动已添加,以黄色突出显示的活动已修改属性,已删除活动的颜色代码为粉红色。

在我们的例子中,我们可以看到我们有一个修改了属性的活动。
选择后,我们可以详细查看每个差异。在我们的例子中,不同之处在于我们之前修改的 Delay 属性。
我们还看到添加的日志消息活动以绿色突出显示。
如果我们想确保我们已经完成了所有必需的更改,如果我们想查看先前版本中的属性值,或者如果我们想检查我们是否意外修改了任何内容,此工具将非常有用。
现在我们已经介绍了 Show Changes,让我们看看如何查看和解决冲突。
假设我们在一天开始的时候就撤回了这个项目并开始着手处理它。与此同时,另一位同事从远程存储库中提取了该项目,对我们正在处理的同一工作流程进行了一些更改并推送了它。这将在尝试推送我们的本地版本时产生冲突。
让我们模拟一下这种情况。
我们将打开 Studio 的另一个实例并将我们的远程 GitHub 存储库克隆到不同的文件夹。
我们将转到 Team 选项卡并单击 Clone Repository。
接,我们将在 Check out directory 字段中添加不同的路径,以模拟在同一项目上工作的不同开发人员。我们将点击打开。
让我们做一些改变。
让我们在 Extract Data 工作流的开始处添加一个 Log Message 活动并对其进行配置。它将记录机器人已进入该块。
在 Extract Structured Data 活动中,让我们停用 Simulate Click 属性。
好的,我们已经完成了第二个开发人员所做的更改。让我们保存、提交和推送修改后的工作流文件。
OK,第二个开发者的改动已经推送到远程仓库了。
现在,让我们回到最初的开发人员,为同一个工作流文件选择提交和推送。
我们将收到一条消息,指出当前分支已过期。我们将单击 Pull 以获取更新版本。
显示解决冲突窗口。此窗口与“显示更改”窗口非常相似,并使用相同的颜色编码。
在左侧,我们有文件的远程版本,在右侧,我们有本地版本。
请注意,第二个开发人员添加的日志消息显示为已删除。
我们可以看到活动属性值的差异,即页面之间的延迟和模拟点击。
这是本地版本中添加的日志消息。
让我们专注于菜单选项。从这里我们可以选择我们想要提交到远程存储库的文件版本。
在我们的场景中,Left 将选择第二个开发者已经推送的远程版本,Right 将选择第一个开发者创建的本地版本。
我们将单击“选择正确”以覆盖我们的版本。
好的,到这里我们就完成了。让我们点击保存。
我们的更改已推送到远程存储库。
我们的 Show Changes and Solve Conflicts 演示到此结束。
在结束视频之前,让我们快速浏览一下关键要点:

显示更改让我们可以比较同一文件的两个版本之间的更改。如果我们想确保我们已经对我们的项目进行了所有必需的更新,如果我们想查看以前版本的属性值,或者如果我们想检查我们是否没有修改任何活动或活动值,这很有用意外地。

每当 Studio 在执行 Rebase 或 Push 时检测到本地文件与在远程存储库中找到的文件之间存在冲突时,就会显示解决冲突窗口。此窗口显示文件的两个版本之间的差异,并让我们选择是将远程版本还是本地版本提交到远程存储库。

3.4 创建和管理分支

视频演示 - 创建和管理分支

创建新分支,查看可用分支,从一个分支切换到另一个
并且,通过合并或变基选项管理分支。
您好,欢迎回到新的 UiPath 演示!
在本视频中,我们将学习如何创建新分支、查看可用分支、从一个分支切换到另一个分支以及通过合并或变基选项管理分支。
但首先,为什么要首先使用分支?当我们想要并行处理同一项目的不同功能时,分支很有用。例如,我们可以创建一个分支来处理处理数据的文件,而另一个开发人员在主分支上添加了异常处理机制。在我们完成该功能的工作后,我们可以将我们的进度合并到主分支中。让我们开始!
在这个演示中,我们将使用一个新分支来开发一个工作流,该工作流过滤提取的数据并将其保存到 Excel 文件中。与此同时,在 master 分支上,另一位开发人员将致力于为登录组件添加一个 Retry Scope 容器。
让我们从本地 Git 存储库中打开项目开始。
现在,让我们检查状态栏是否有任何未提交的更改。看起来没有任何更改,也没有未发布的提交。伟大的!
我们将在“项目”面板中右键单击我们的工作流程,然后选择“拉动”。
让我们创建一个新分支,以便开始处理我们的数据处理功能。

让我们从 Project Panel 中右键单击该项目并选择 Manage Branches。

在 Manage Branches 窗口中,我们可以查看可用的分支:
存储在我们本地存储库中的 master 分支和……托管在服务器上的远程 master 分支。
在这里我们还可以通过按加号按钮添加一个新分支。
我们将其命名为“提取数据处理”。
让我们点击添加并保存更改。
我们已经成功创建了新分支。
如果我们检查状态栏,我们可以看到目前我们仍然在 master 分支上。我们可以从状态栏中的分支菜单导航到新分支,……或者我们可以从项目面板导航到管理分支。
我们可以右键单击要切换到的分支,然后选择“Checkout Branch”。
如您所见,我们现在已切换到提取数据处理分支。
让我们添加一个新工作流,将其命名为“ExtractedDataProcessing”并点击“创建”。
由于开发此功能超出了本演示的范围,让我们此时返回项目面板,并提交我们的更改。
我们将添加一条消息来通知我们的团队我们所做的更改,然后选择 Commit and Push。请注意,推送是在 Extract Data Processing 分支上完成的,现在我们也有了该分支的远程版本。
注意,如果我们切换到 master 分支,新的工作流是不可用的。

现在让我们看看如何使用可用于管理分支的选项将分支中提交的更改集成到另一个分支中。在这种情况下,我们希望将另一个开发人员对主分支所做的更改添加到我们的功能分支中。
让我们看看 Extract Data Processing 分支。伟大的!
在我们的功能分支中,我们有一个登录序列。我们打开浏览器,输入用户名和密码,单击登录,然后检查屏幕上是否存在元素以确认登录是否成功。
如果登录不成功,我们会抛出异常。
但是如果我们切换到 master 分支,我们可以看到有人已经实现了一个更改,以改进日志的顺序。
他们已将登录置于 Retry Scope 活动中,因此在登录失败的情况下,…它将向用户请求凭据。
我们希望将 master 分支中所做的更改集成到本地 Extract Data Processing Branch 中。换句话说,我们希望将 master 分支合并到 feature 分支中。
让我们单击管理分支,并检查提取数据处理分支。

好的,我们在功能分支中。
让我们回到管理分支。
让我们右键单击本地主分支。我们可以看到我们有几个可用的选项。
如果我们使用 Merge 选项,则所选分支将合并到当前分支中。如果我们使用 Rebase 选项,当前分支将被重新定位到所选分支。
要将更改从 master 分支集成到 Extracted Data Processing 分支,我们将选择 Merge。
如您所见,Retry Scope 活动已集成到我们的登录工作流程中,并且 Request Credential 活动也已添加到我们的分支中。
这就是这个演示!但在我们结束视频之前,让我们快速回顾一下我们学到的东西:
在本视频中,我们学习了如何查看分支和创建新分支。我们还学习了如何在分支之间切换以及如何使用合并或变基选项来管理它们。
感谢您的收看,祝自动化愉快!
状态栏
现在我们已经看到了 UiPath Studio - GitHub 集成中的一些最重要的功能,让我们花点时间检查一下状态栏可以告诉我们什么。
在这里插入图片描述

  1. 此指示器显示两条信息:
    #ahead - 告诉我们自上次拉取或推送以来已对本地存储库进行了多少次提交。
    #behind - 告诉我们自上次拉取或推送以来已向远程存储库进行了多少次推送
  2. 该指标显示自上次提交以来对项目所做的更改数量。
  3. 此指示器显示项目连接到的存储库的名称。
  4. 这是我们当前工作的分支的名称。我们可以使用这个下拉菜单来更改分支。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值