作业要求:http://edu.cnblogs.com/campus/nenu/2019fall/homework/9961
一、小组情况:
组名:都是为了生活
组长:王可非
组员:董亚辉 徐姗姗 迟俊文 肖亚男
二、git地址:https://e.coding.net/thiking/AllForEating.git
三、问题回答
1. 你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题?
答:(1)团队项目的源代码提交到coding.net上进行托管
(2)项目的开发用的微软的Windows10系统,开发工具是微信开发者工具。
(3)本项目的文件没有被锁定,为了便于团队成员之间要了解代码并且进行沟通,在本地处理好文件代码中的问题,然后提交。
2. 如何看到这个文件和之前版本的差异? 如何看到代码修改和工作项 (work item),缺陷修复 (bug fix) 的关系。
答:我们利用TortoiseGit中的 “与上一版本比较差异的功能“,可以看到两个版本之间的变化。 还可以通过git log语句查看日志,通过查看日志中的提交说明,及代码中对修改作出的相应注释可以看到代码修改和工作项,缺陷修复的关系。
3. 如果某个文件在你签出之后已经被别人修改,并且签入了,那么你在签入你的修改的时候, 如何合并不同的修改(merge)? 你用了什么工具来帮助你?
答:(1)先从coding.net上pull下来到本地仓库,更新本地仓库的代码,然后比对不同之处,之后再签入。
(2)使用的工具是TortoiseGit。
4. 你有20个文件都是关于同一个功能的修改,你要如何保证这些文件都同时签入成功(修改的原子性),或者同时签入不成功?
答:如果多个文件都是关于同一个功能的修改,在进行签入前我们会在群里进行通知,保证自己签入时没有其他人进行签入操作,完成之后再在群里通知他们可以签入签出。我们的项目进行到现在还未出现这种情况。
5. 你的PC 上有关于三个功能的修改, 但是都没有完成,有很多文件处于半完工的状态,这时你要紧急修改一个新的 bug,如何把本地修改放一边,保证在干净的环境中修改这个 bug, 并成功地签入你的修改 --- changelist management。
答:保存半完工状态的文件,新建一个分支,在新分支上进行修改bug,确保两分支的之间互不干扰
6. 规范操作和自动化
你的团队规定开发者签入的时候要做这些事情:
- 运行单元测试,相关的代码质量测试。
- 代码复审 (要有别的员工的名字)
- 和这次签入相关的issue 编号, 任务/task, 缺陷/bug 编号,等等, 以备查询。
请问你的团队有这样的自动化工具让开发者方便地一次性填入所有信息然后提交么? (高级功能, 代码提交之后, 相关bug 的状态会改动为 “fixed”, 并且有链接指向这次签入。)
答:没有。
7. 如何给你的源代码建立分支?
场景:你们需要做一个演示,所以在演示版本的分支中对各处的代码做了一个临时的修改, 同时,主要的分支还保持原来的计划开发。 你们怎么做到的? 在演示之后,演示版本的有些修改应该合并到主分支中,有些则不用,你们是怎么做到的?
场景: 你们的软件发布了,有很多用户,一天,一个用户报告了一个问题,但是他们是用某个老版本,而且没有条件更新到最新版本。 这时候,你如何在本地构建一个老版本的软件,并试图重现那个问题?
答:场景一: 在coding.net上新建一个分支
场景二: 构建一个老版本可以进行代码版本回退,使用的git语句是git reset --想要回退的版本号。
8. 一个源文件,如何知道它的每一行都是什么时候签入的,为了什么目的签入的 (解决了哪个任务,或者哪个bug)?
场景: 一个重要的软件历经几年,几个团队的开发和维护,忽然出现在某个条件下崩溃的事故, 程序员果冻经过各种debug手段,发现问题是在某一个文件中有一行代码似乎显然出了问题, 但是这个模块被很多其他模块调用, 这行代码是什么时候,为了什么目的,经过谁签入的呢? 如果贸然修改, 会不会导致其他问题呢? 怎么办?
回答:每次签入变动的时候都会有时间显示,在签入时可以对签入进行注释然后再提交,成员可以通过git log查看日志。
9. 如何给一个系统的所有源文件都打上标签,这样别人可以同步所有有这个标签的文件版本?
代码每天都在变, 有时质量变好,有时变差,我们需要一个 Last Known Good (最后稳定的好版本) 版本, 这样新员工就可以同步这个版本, 我们如果需要发布,也是从这个版本开始。 那么如何标记这个 Last Known Good 版本呢?
回答:在good known版本的时候就可以新建立分支good known,需要的时候就从分支good known中导出。
10. 你的项目的源代码和测试这些代码的单元测试,以及其他测试脚本都是放在一起的么? 修改源代码会确保相应的测试也更新么?你的团队是否能部署自动构建的任务?
答:没有进行单元测试。
作业题,分析比较各种软件构建环境:
就像一个厨师要分析各种厨房用具,挑选适合自己的工具组合, 一个软件团队也要挑选适合自己的源代码管理和其他配套工具,请选择至少三种,比较各自的优点缺点,成本:
github
https://gitee.com/education
coding.net
code.csdn.net
gitcafe.com
www.visualstudio.com
code.taobao.org
Visual Studio Team Foundation Server
gitblit, 在Windows系统下构建 git 服务,带网页端管理…
Visual Source Safe (VSS)
自己搭建系统
GitHub:是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管。
优点:
1.比较好的支持Mobile。虽然github没有手机客户端,但是一般开发者,写好的blog都会通过微博进行分享,所以点击过来之后,就可以在手机浏览器里面访问。
2.功能设计简洁实用上手很快,可用性好,已有很多相当质量的各类项目和优秀开发者在上面。
缺点:
1.国内访问速度太慢,经常出现connect time-out
2.对中文不够友好
3.github有时可能被墙,或者不稳定
4.没有集成社交分享功能。比如后面可以分享到微博,微信朋友圈等。之前有人建议我去做插件,有时间看看这个。(据说是这样我还没有考证)
成本: github的价格过高
Coding.net是一个面向开发者的云端开发平台,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者进行技术讨论和协作。
优点:速度快、安全性高、功能界面简洁。
缺点:稳定性差、使用人数只限于国内,人数有限。
成本:成本较低
Visual Source Safe (VSS)
优点:
微软的VSS版本控制软件,简单,上手快。软件支持Windows系统所支持的所有文件格式,兼容Check out-Modify-Check in(独占工作模式)与Copy-Modify-Merge(并行工作模式)。VSS通常与微软公司的Visual Studio产品同时发布,并且高度集成。VSS的项目组织管理使得开发小组的协调变得简单容易且很直观。
缺点:
VSS遇到奇怪的问题,提交大的文件(30MB左右),总是崩溃,显示延缓写入错误,英文提示是error from reading file.VSS(6.0d及较早版本)最广受垢弊的缺点是需要快速大量的信息交换,因此仅适用于快速本地网络,而无法实现基于Web的快速操作,尽管一个妥协的办法是可以通过慢速的VPN。
四、报告
1、β阶段(第二周)checkin次数记录
|
王可非 |
迟俊文 |
徐姗姗 |
肖亚男 |
董亚辉 |
2019.11.7 |
0 |
0 |
0 |
0 |
0 |
2019.11.8 |
1 |
0 |
0 |
0 |
0 |
2019.11.9 |
0 |
0 |
0 |
0 |
0 |
2019.11.10 |
0 |
0 |
0 |
0 |
1 |
2019.11.11 |
0 |
1 |
0 |
0 |
1 |
2019.11.12 |
0 |
0 |
1 |
0 |
1 |
2019.11.13 |
1 |
0 |
0 |
0 |
1 |
2、checkin log
时间 |
人员 |
Message |
所属功能 |
Nov 8 13:39:26 |
王可非 |
经典场景添加 |
经典场景功能 |
Nov 10 12:53:01 |
董亚辉 |
声音按钮bug |
声音开关 |
Nov 10 12:56:01 |
董亚辉 |
个人中心页面更新 |
个人中心功能 |
Nov 10 12:56:49 |
董亚辉 |
更新代码 |
转盘组件功能 |
Nov 11 21:58:44 |
迟俊文 |
个人场景界面 |
个人场景功能 |
Nov 12 17:59:23 |
徐姗姗 |
set change |
个人中心界面 |
Nov 12 21:59:16 |
董亚辉 |
个人场景功能实现 |
个人场景功能 |
Nov 12 22:00:31 |
董亚辉 |
图库更新 |
图库 |
Nov 13 13:26:02 |
王可非 |
经典场景添加 |
经典场景功能 |
Nov 13 14:35:31 | 董亚辉 | 场景功能代码更新 | 个人场景功能 |
3、小组成员代码量贡献
(1)数据表
人员 |
β阶段第二周代码量(行) |
所占比例 |
王可非 |
114 |
22% |
迟俊文 |
87 |
16% |
徐姗姗 |
22 |
4% |
肖亚男 |
0 |
0% |
董亚辉 |
309 |
58% |
(2)饼状图