项目:带有C语言教程及算法的手机app
1.问:你的团队的源代码控制在哪里?用的是什么系统?
答:我们将源代码托管在GitHub,GitHub系统,使用Windows系统
2.问:一个代码文件被签出之后,另一个人可以签出这个文件,并修改么?有几种设计,各有什么优缺点
答:
签出文件后,此文件就加锁,别人无法签出:
这种情况,可以保证每个人获取的文件版本是最新的,也不会产生修改冲突。但是这种方式花费的时间相对要长一些,因为其他人要等签出这个文件的人签入完毕以后才能签出下来进行修改。
所有人都可以自由签出文件:
所有人都可以自由签出文件,这种情况大家各自修改自己需要修改的模块,但是到合并代码的时候,需要人工Merge,这种方式风险会大一些,特别是同一个人修改一个文件涉及到相同函数的修改。
我们团队的在处理文件的锁定问题上是不加锁的,也就是说我们的成员可以自由迁入迁出。这样可以最大化效率。
3.问:如何看到这个文件和之前版本的差异?
答:点开项目的commit的记录,查看分支
4.问:如果某个文件在你签出之后已经被别人修改,那么你如何合并不同的修改(merge)?
答:在git中执行合并即可自动合并Git修改的部分。但是,也存在无法自动合并的情况。如果在远程数据库和本地数据库的同一个地方都发生了修改的情况下,因为无法自动判断要选用哪一个修改,所以就会发生冲突。需要手动解决冲突。
5.问:你有20个文件都是关于同一个功能的修改,你要如何保证这些文件都同时签入成功(修改的原子性)
答:git作为一个成熟的源代码版本管理系统本身就可以保证在签入时的原子性,所以在我们的项目开发流程中没有遇到部分修改可以上传而某些部分的修改不能上传的混乱状态。
6.问:你的PC 上有关于三个bug 的修改, 但是都没有完成,这时你要紧急修改第四个bug,如何把本地修改放一边,保证在干净的环境中修改第四个bug, 并签入修改?
答:这个时候我们只要在本地新建一个分支,然后在新的分支上进行bug的修复就好。
7.问:如何给你的源代码建立分支?
答:这个readme_edit是我刚刚创建好的分支
现在有两个分支,master和readme-edits。到目前为止他们看起来很像,但也仅仅是到目前为止。接下来会在新建分支上进行改动。
8.问:一个源文件,如何知道它的每一行都是什么时候签入的?
答:GitHub页面如下操作
9.问:如何给一个系统的所有源文件都打上标签,这样别人可以同步所有有这个标签的文件版本?
答:在Last Known Good版本时进行分支,别人可以从该分支进行Last Known Good版本的导出工作。
10.问:你的团队是否能部署自动构建的任务(自动同步所有文件,自动构建,自动运行单元测试,碰到错误能自动发邮件给团队)
答:暂时还不可以
网络答案:在签入之前,程序员能否自动在自己的机器上运行自动测试,以保证本地修改不会影响整个软件的质量
在程序员提交签入之后,服务器上是否有自动测试程序, 完成编译,测试,如果成功,就签入,否则,就取消签入
团队是否配置了服务器,它自动同步所有文件,自动构建,自动运行相关的单元测试,碰到错误能自动发邮件给团队。
此阶段均在本地测试