版本控制:回答问题
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11435
一,问题回答
0. 在吹牛之前,先回答这个问题: 如果你的团队来了一个新队员,有一台全新的机器, 你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新、最稳定版本 的软件编译出来,并运行必要的单元测试?
回答:我们还没有创建相应的文档,我们的功能实现比较简单,只要阅读相关博客园就可以理解项目进展情况。
1. 你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题?
回答:项目GitHub上,使用git进行版本控制。使用的是win10系统。由于我们没有对文件进行加锁,所以没有遇到锁定问题。
2. 如何看到这个文件和之前版本的差异? 如何看到代码修改和工作项 (work item),缺陷修复 (bug fix) 的关系。
回答:每次提交不同的版本,会添加备注,标明修改的地方。通过查看备注,就可以看到与之前的差异,也可以看到代码修改和工作项 (work item),缺陷修复 (bug fix) 的关系。
3. 如果某个文件在你签出之后已经被别人修改,并且签入了,那么你在签入你的修改的时候, 如何合并不同的修改(merge)? 你用了什么工具来帮助你?
回答:没有遇到过这个问题,因为每个人负责不同的功能,如果修改别人写好的代码,会在群里通知,然后在签入时手动合并不同的修改。
4. 你有20个文件都是关于同一个功能的修改,你要如何保证这些文件都同时签入成功(修改的原子性),或者同时签入不成功?
回答:每两个人负责同一个功能,如果修改同一个功能会相互通知,保证这些文件同时签入成功
5. 你的PC 上有关于三个功能的修改, 但是都没有完成,有很多文件处于半完工的状态,这时你要紧急修改一个新的 bug,如何把本地修改放一边,保证在干净的环境中修改这个 bug, 并成功地签入你的修改 --- changelist management。
回答:先保存半完工的修改文件,然后建立一个新的分支,在新的分支上修改这个紧急的bug。
6. 规范操作和自动化
- pull request,issue都是杀手级的feature
- 强调个人,符合hacker更看重名誉/成就感的天性
缺点:
- 国内访问速度太慢,经常出现connect time-out(非GFW所为)
- 不能很好的解决GB2312/GBK,对中文不够友好
- wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点
codingnet:
优点:
1.支持创建、编辑、筛选代码分支,并可将特定分支设为保护分支,方便版本管理。
2.可选择不同的分支版本进行对比,查看代码改动前后版本差异和文件改动。
3.国内访问速度和代码同步速度快。
缺点:
国内使用人数多,不能与国外交流。
vss:
优点:
可同时开发产品的多个版本,
缺点:
由于VSS 没有服务器组件,因此涉及将数据从客户端传输到数据库的操作是非事务性的。这意味着如果发生问题,操作就无法回滚