代码托管提供基于Git的在线代码托管服务,包括代码克隆/提交、分支管理等功能。
CloudIDE是DevCloud的云端开发环境服务,向开发者提供按需配置、快速获取的工作
空间(包含编辑器和运行环境)。由于门店网络查询功能为高优先级Story,本章节将以此功能为例进行介绍如何使用代 码托管服务进行源代码管理与开发。
本样例项目中采用分支来进行代码的开发。首先由开发人员Chris在代码仓库中创建分 支,并使用CloudIDE进行代码开发;然后开发人员Chris在代码仓库中提交分支合并请 求,项目经理Maggie评审通过后合并分支至主干。分支管理相关知识,请参考基于
Git分支的经典工作模式。
使用分支管理代码
分支是用来将特性开发并行独立出来的工具。使用分支意味着把工作从开发主线上分 离开来,以免影响开发主线。
在创建代码仓库时,会有一个默认分支“master”,即主线。为了保证凤凰商城的稳 定运行,需要有一个稳定的持续可用master。因此,项目经理建议:不直接在master 分支上进行代码开发,而是统一采用功能分支+合并请求的方式,并且每一个功能分支 的代码,必须经过团队的其他成员评审后,才可以进行合并。
步骤1 将master分支设置为受保护分支(本文档中由项目经理Maggie操作)。
1. 进入“凤凰商城”项目,单击页面上方导航“代码 > 代码托管”,页面将显示样 例项目自动创建的代码仓库“phoenix-sample”,如图1-36所示。
图1-36 代码托管
2. 单击仓库名称进入代码仓库,选择“设置”页签。在左侧导航中单击“仓库管理
> 保护分支管理”。
3. 单击“新建保护分支”,参照表1-13在弹框中完成配置,单击“确定”保存,如 图1-37所示。
表1-13 新建保护分支配置
配置项 配置建议
选择需要保护的分支 选择“master”。
管理者权限 选择“能提交,能合并”。
开发者权限 选择“不能提交,不能合并”。
图1-37 新建保护分支
步骤2 创建功能分支(本文档中由开发者Chris操作)。
1. 进入“凤凰商城”项目,在代码托管页面中找到仓库“phoenix-sample”。
2. 单击仓库名称进入代码仓库,选择“分支”页签。
3. 单击页面右上角“新建分支”,参照输入分支信息,单击“确定”保存,如图
1-38所示。
表1-14 新建分支
配置项 配置建议
分支名称 输入“Feature-Store”。
基于 选择“master”。
关联工作项 选择“作为用户应该可以查询所有门店网络”。
图1-38 新建分支
----结束
使用 CloudIDE 修改和提交代码
在迭代规划时将门店查询功能分解为前端展示与后台管理两个task,本节以Task“前 端展示 - 添加门店网络菜单”为例介绍如何使用CloudIDE修改与提交代码。
步骤1 单击页面上方导航“工作 > 迭代”,在迭代4中找到Task“前端展示 - 添加门店网络菜 单”,将Task的状态修改为“进行中”。
步骤2 单击页面上方导航“代码 > 代码托管”,找到仓库“phoenix-sample”。
步骤3 将代码导入CloudIDE中。
由于目前CloudIDE只支持“华北-北京一”、“华北-北京四”、“东北-大连”三个区 域,因此请根据项目所属的区域进行导入操作。
● 项目所属区域在“华北-北京一”、“华北-北京四”、“东北-大连”之中。
a. 单击仓库名称进入代码仓库,单击页面右上角“CloudIDE”,页面跳转至 CloudIDE服务,如图1-39所示。
图1-39 代码仓库
b. 等待CloudIDE加载完毕(约1~2分钟),可看到代码仓库已自动导入 CloudIDE中。
● 项目所属区域不在“华北-北京一”、“华北-北京四”、“东北-大连”之中。
a. 在代码仓库中设置HTTPS密码。
b. 在代码仓库列表中,在仓库URL列获取HTTPS地址。
c. 登录CloudIDE,在“免费体验”页签单击“All in One”下的“免费体 验”,申请60分钟的免费体验实例,如图1-40所示。
图1-40 CloudIDE
d. 等待CloudIDE加载完毕,导入工程,其中Url为代码仓库HTTPS地址,User和 Password分别为HTTPS用户名与密码。
步骤4 选择分支。
1. 单击页面左下角“master”,页面上方出现下拉列表。
2. 在下拉列表中选择使用分支管理代码中创建的分支“Feature-Store”,此时页面 左下角显示“Feature-Store”,如图1-41所示。
图1-41 选择分支
步骤5 修改代码。
1. 在左侧导航中找到文件“vote/templates/store-network.html”并打开,根据需 求规划添加门店地址,如图1-42所示。
<ul>
<li>北京分店:首都机场1号航站楼出发层靠右直行888米右侧</li>
<li>天津分店:经济技术开发区黄海路888号</li>
<li>上海分店:静安区大统路888号</li>
<li>重庆分店:涪陵区桥南大道电信局西侧</li>
</ul>
图1-42 添加门店地址
2. 在左侧导航中找到文件“/vote/templates/index.html”并打开,在179行添加菜 单“门店网络”,如图1-43所示。
<li class="nav-item"> <a href="store-network" class="nav-link">门店网络</a> </li>
图1-43 添加菜单
步骤6 提交修改至代码仓库,如图1-45所示。
1. 单击左侧边栏图标 ,打开Git功能。
2. 单击修改文件后方的图标 ,将修改内容添加进提交内容当中。
3. 输入提交信息“fix #8008614 添加门店网络菜单”。
其中“#8008614”是本文档中Task“前端展示 - 添加门店网络菜单”的编号(如 图1-44所示),实践中请修改为实际Task的编号。
图1-44 工作项编号
4. 单击图标 提交本次修改。
5. 单击图标 。
6. 在下拉列表中单击“Push”,推送代码到代码仓库。
图1-45 提交修改至代码仓库
步骤7 返回代码仓库,在“分支”页面中找到分支“Feature-Store”,最新提交与CloudIDE 中输入的内容相同,如图1-46所示。
图1-46 分支列表
步骤8 单击页面上方导航“工作 > 迭代”,在迭代4中找到Task“前端展示 - 添加门店网络菜 单”。
● 单击Task名称,在详情页中可看到状态自动变为“已解决”。
● 选择“关联”页签,在“代码提交记录”下可看到一条记录,详情与上一步中看 到的分支提交记录相同,如图1-47所示。
图1-47 代码提交记录
----结束
检视代码、合并分支
步骤1 开发人员发起合并请求。
开发人员Chris完成代码开发,确认无误后,即可发起合并请求,将功能分支合并到 master中。
1. 进入代码仓库,选择“合并请求”页签,单击“新建合并请求”。
2. 选择从“Feature-Store”到“master”,单击“下一步”。
3. 参照表1-15编辑合并请求详情,如图1-48所示。
表1-15 合并请求配置 配置项 配置建议
标题 输入“添加门店网络列表”。
合并人 单击“添加合并人”,在弹框中选择“Maggie”。
评审人 单击“添加评审人”,在弹框中选择“Maggie”。
4. 单击“确定”完成合并请求的创建。
图1-48 新建合并请求
步骤2 项目经理评审并完成代码合入。
本文档中,合并请求的评审人与合并人均是项目经理Maggie。因此Maggie可评审合 并请求内容,并在评审通过后完成分支合入。
1. 进入代码仓库后,选择“合并请求”页签,可找到由开发人员Chris创建的合并请 求。
2. 单击该请求,查看合并请求详情。
3. 通过页面右下角可评分、发布评论或讨论,如图1-49所示。详细操作请参考分支 合并评审。
4. 单击“合并”,将分支合入“master”。
图1-49 合并请求
----结束