forked from eternalNight/git-autotester
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GADevLog
47 lines (41 loc) · 3.06 KB
/
GADevLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Git-autotester Dev Log
=======================
【1】Grit::commit的bug
GA使用了Grit库,其中commit类构造函数通过git log中的文本信息构造实例对象
但是在raw格式的git log输出中,带有较多的merge tag信息,而Grit::commit类没有考虑这一信息
【2】原先GA的问题
GA初期版本pull得到最新的commit,会去找它和前一个commit之间的所有commit
如果超过10个,则认为是切换分支了,而不做处理
考虑到linux的git源常常会出现master上两个commit之间有较多commit的情况
把这一限制去除
【3】YAML.dump的问题(未完全修复)
在测试【trinity】的过程中,会把QEMU里面Guest OS标准输出的信息通过QEMU虚拟串口重定向到Host OS的标准输出中
而【trinity】经常会打印出带有颜色信息的bash文本,形如\e[0;21m之类的
修改代码,需要先用enocde函数将非法字符替换为空,然后用正则把所有这类模式删除掉
【4】重新整理GA的架构
最初所有代码都在一个ruby文件下,而且各个模块耦合度非常高,对后续的开发和优化都非常不方便
第一步就是把代码的各个部分分离
把代码拆成若干个相对独立的类之后,发现对ruby还是有点不太熟悉,很多地方代码耦合度还是比较高,这个可以在日后开发的过程中一直完善
【5】对需求的重新思考
从整个抽象的思考,GA的后端桥接着一些远程Repo和展示平台。
----------------- -------------- --------- --------- ---------
| Remote Repo 1 |------| Local Repo |-----| | | | | |
----------------- -------------- | | | | | |
----------------- ---------------- | | | | | |
| Remote Repo 2 |----| Local Repo 1 |-----| | | | | |
----------------- | ---------------- | Back |-----| MySQL |-----| Front |
. | ---------------- | End | | DB | | End |
. |-| Local Repo 2 |-----| | | | | |
. ---------------- | | | | | |
. | | | | | |
----------------- -------------- | | | | | |
| Remote Repo n |------| Local Repo |-----| | | | | |
----------------- -------------- --------- --------- ---------
GA需要关注的是Local Repo到MySQL的这一部分
(1)Local Repo,需要依赖的工作是定义一个良好的config文件。对每个Local Repo,我们设立一个测试项目。
(2)BackEnd,需要依赖的工作是梳理逻辑:
测试项目1(更新本地Repo->用工具测试->测试结果分析->测试结果存储)
->测试项目2(更新本地Repo->用工具测试->测试结果分析->测试结果存储)
->...
(3)MySQL DB,需要根据最终显示的需求设计一个高效数据库
(4)FrontEnd,设计一个用户能够容易理解和使用的界面