跳到主要内容
版本:Cloud

SVN

通过代码关联集成 SVN(包括 Windows/Linux/Mac 系统的 SVN ) ,将代码提交和 Project 模块结合使用。

1.仓库集成配置​

1.1 新建关联代码仓​

SVN 服务端版本最低支持 Subversion 1.7.x,推荐使用 Subversion 1.10.x。请对应选择客户端版本,客户端推荐使用 TortoiesSVN 1.13.x。

启用「代码集成」应用后,前往配置中心-代码集成配置进行代码仓库的关联,点击「新建关联代码仓」以关联当前团队所需 SVN 代码仓。

SVN 配图 1

填写仓库名称,关联仓库。

SVN 仓库不支持自动配置Webhook,需要手动配置。打开详情页,按照配置指引完成仓库地址、Webhook的配置。

SVN 配图 2

1.2 配置 Webhook​

你需要先在 SVN 服务器上下载 Webhook 工具,然后选择执行命令的参数。注意:执行命令前,Windows 用户需提前准备 Python 2.7 环境。

SVN 仓库的Webhook 不同于Git类型仓库,需要通过配置工具完成仓库的连接,Webhook的配置。

按配置指引执行命令,用于配置 Webhook 的必须参数:repo_dir、webhook_url、secret_key。

SVN 配图 3

1.3 指定第三方链接查看 SVN 的代码提交详情​

由于 SVN 不支持直接在浏览器查看代码提交详情,你需要借助能在浏览器中打开的第三方代码托管工具,例如 Upsource。

ONES 支持通过参数指定第三方链接,以便在 ONES 中查看工作项或迭代关联的代码提交时,能点击打开代码提交详情。如果你有此需求,可以在配置代码关联集成时选择执行参数“link_url”,否则可以不执行“link_url”参数。

SVN 配图 4

1.4 移除关联代码仓​

如果不需要再获取某代码仓的代码提交数据,你可以移除关联此代码仓。 移除关联代码仓不影响历史已获取的代码提交数据。

SVN 配图 5

2.代码提交关联工作项​

团队成员可以在代码提交 (commit message) 的时候通过输入包含工作项 ID 的方式和工作项进行关联。 目前一次代码提交支持与多个工作项同时进行绑定,请在多个工作项 ID 之间添加空格作为分隔,例如“#1 工作项一 #2 工作项二”。

提交成功后,工作项自动关联代码提交,以便代码提交数据与项目管理结合。你可以在工作项详情的“代码关联”栏位查看代码关联结果。

SVN 配图 6

迭代支持汇总需求已关联的代码提交数据,迭代负责人可以据此跟进开发进展。

SVN 配图 7

此外,如果你在配置代码关联集成的时候,指定了“查看 SVN 代码提交详情”的第三方链接。你可以点击 Commit ID 查看此次代码提交的详情。 注意:系统不支持查看历史已关联的 SVN 代码提交详情。

以指定 Upsource 平台的链接为例,点击 Commit ID 打开的代码仓详情页如下图:

SVN 配图 8

迭代概览下将汇总统计当前迭代的代码提交情况,帮助迭代负责人评估开发贡献量。 目前支持统计和分析代码提交次数、代码提交次数趋势、代码提交影响行数的情况。

SVN 配图 9

3.关联代码提交时自动触发工作项状态流转​

当开发人员提交代码并关联到ONES工作项时,触发器会自动将其关联的工作项的状态进行流转,而不需要开发人员手动去更改工作项状态,提高开发人员工作效率。

3.1 配置工作流触发器​

安装「代码集成」应用并在「配置中心」-「代码集成配置」中关联代码仓库后,可以在「项目设置」-「工作项类型」-「工作项工作流」-「编辑步骤」配置中找到「触发器」功能,选择并添加触发器。

  • 每个工作流的步骤可配置多个触发器,触发任意一个,状态变更会自动执行;
  • 被触发器自动化执行的状态变更会忽略「步骤验证」和「步骤属性」的校验,但「后置动作」会被正常执行。

SVN 配图 10

3.2 触发器常见问题​

  1. 无法添加触发器的原因是什么?

    • 未安装「代码集成」应用时,无法添加代码开发事件的触发器;
    • 如果当前步骤已经添加了某个触发器,则不能重复添加;
    • 同一个工作项类型,如果状态A到状态B的步骤已经配置了某个触发器,则状态A到其他状态的步骤不能重复添加该触发器,是为了防止当某个触发事件发生时,系统无法判断应该从状态A流转到哪个状态。
  2. 配置触发器后,工作项状态没有流转到预期的目标状态,可能的原因是什么?

    • 代码仓是否已关联ONES系统,在未关联的代码仓库中操作无法关联到ONES工作项,从而无法触发工作项状态变更
    • 如果流转到目标状态后刚好满足某个流程自动化规则的触发条件,会导致工作项状态进一步流转到其他状态