最近在日常工作中遇到了这样一个问题 同事提交了一个硕大的 MR,超出了 Gitlab 的处理极限……然后他就给我忽略了 23 个 commits。可是,尼玛,我要 review 啊!怎么搞呢?
我可以想到上面三种方式,但是可惜,都不是我想要的。 第一种方式简直就是人肉搜索啊,虽然不至于花很多时间,但是就是不爽 第二种方式看起来简单,但是我要先保存 git log 的 output,然后再手动一个一个的 copy 给 git show,这也太累了 第三种方式我觉得一次性给了我太东西了,一看就头昏啊
所以我就在寻思怎么搞?……? 对比上述三种方式,第二种最有改进前途。所以我就寻思怎么样把 git log 的输出一个一个传给 git show 通过无所不能的 Google Search,我得到了这样一个命令
git log --reverse --pretty=format:"%H" master...aclprod-456/richard | head -$c | tail -1
这里的c
是一个 bash 的变量,我准备让它自增。上面的命令会按照时间顺序依次输出下一个 commit 的 Hash 值。
现在我就可以把这个值传给 git show 了
git show $(git log --reverse --pretty=format:"%H" master...aclprod-456/richard | head -$c | tail -1)
但是,我又想在浏览器看,怎么办?
((c+=1)) && open -a /Applications/Safari.app https://your/gitlab/repo/commit/$(git log --reverse --pretty=format:"%H" master...aclprod-456/richard | head -$c | tail -1)
OK,这样我就可以只需要轻敲两个键盘就能在浏览器慢慢 review 这个硕大的 MR 了。
==================================
不知道你们的日常是怎么处理类似问题的,欢迎吐槽!