gitlet个人记录
从开始动手到完工约16h
跨度4days,这几天基本上除了上课就是写这个
当然很多东西问了ai,把我的copilot额度差点干完了
开始前看完spec人都是懵的,而且英语太差很多具体意思扫一眼根本看不懂,参考了别人的persistence再仔细钻研(问ai)后脑子才慢慢有个框架。感觉最难的部分就是起步阶段,起步啥都没有,想写点什么就会发现它的依赖项还没写,去写依赖项时又发现它依赖别的,或又依赖回刚才的东西,会比较困难一点。而且debug起来比较麻烦,反正我是纯通过test结果自己找bug,找得挺痛苦的。现在回看之前所有的project都跟过家家一样,gitlet的skeleton代码简直就是一具空壳,you have to design almost everything by youself.
我的个人实现:
CS61B proj2 Gitlet
一些记录下来的bug
1
in Commit.java
1 | /** Update the stage area to a new commit. */ |
把pathToBlobs指到了stage的addStage上,然后最后stg.clear()后啥都没了,,,
第二个bug也在上面那一段里
添加parent记录的if判断那里少了,要判断是否已经在pathToBlobs里,否则可能会覆盖了。
3
1 | /** status method */ |
Branches前面多加了一个空格,,,
4
split point算法需要考虑secondParent
5
main函数的case里忘加break; 了解了java switch case格式的穿透性
extra:
忘记编译文件,新的reset都没编译进去,跑半天Main函数那里直接跳过了怎么正确,,
评论