git的bug review该怎么操作?

wjhtingerx
ca6140 03月04日 字数 172

之前用svn,大家都往一个仓库提交代码,只需在提交过程增加一个review过程,review通过的才能真正上传到仓库,否则就会打回。

但是git各种分支,各种合并,review怎么操作呢?用啥工具?

Programming 编程技术
9 个回复
ArchLinux
a lightweight and flexible distribution 03月04日

个人觉得 gerrit code review 还不错,但我没有以项目管理人员的身份用过。

其实这些系统包括gitlab之类的,都是一套集成了代码提交,代码合并,集成测试这些功能的系统,只是操作流程不一样。

【 在 wjhtingerx (ca6140) 的大作中提到: 】

: 之前用svn,大家都往一个仓库提交代码,只需在提交过程增加一个review过程,review通过的才能真正上传到仓库,否则就会打回。

: 但是git各种分支,各种合并,review怎么操作呢?用啥工具?

wjhtingerx
ca6140 03月04日

gerrit具体怎么操作的?在哪个环节review?

【 在 ArchLinux 的大作中提到: 】

: 个人觉得 gerrit code review 还不错,但我没有以项目管理人员的身份用过。

: 其实这些系统包括gitlab之类的,都是一套集成了代码提交,代码合并,集成测试这些功能的系统,只是操作流程不一样。

ArchLinux
a lightweight and flexible distribution 03月04日

开发者做了一个修改,commit之后push,之后reviewer在gerrit网页端可以看这个修改,也可以下载下来,之后给修改意见。gerrit也可以集成一些bot测试这个修改。如果某一个开发者要编辑这个修改,可以改完之后git commit --amend重新push.最后如果reviewer满意了,主管项目的就可以cherry-pick这个修改。

【 在 wjhtingerx (ca6140) 的大作中提到: 】

: gerrit具体怎么操作的?在哪个环节review?

wjhtingerx
ca6140 03月04日

在任何分支上push,都会激发这个review吗?review之前代码有没有真正push到服务器上?

【 在 ArchLinux 的大作中提到: 】

: 开发者做了一个修改,commit之后push,之后reviewer在gerrit网页端可以看这个修改,也可以下载下来,之后给修改意见。gerrit也可以集成一些bot测试这个修改。如果某一个开发者要编辑这个修改,可以改完之后git commit --amend重新push.最后如果reviewer满意了,主管项目的就可以cherry-pick这个修改。

ArchLinux
a lightweight and flexible distribution 03月04日

不是在任何分支上push.服务器上的版本库就一个分支(其实可以有多个),要review的修改最终都是cherry-pick到这个主分支上。

看一下gerrit的文档走个流程基本上就明白了。

$ <work>

$ git commit

aster 3cc9e62] Change to a proper, yeast based pizza dough.

1 file changed, 10 insertions(+), 5 deletions(-)

$ git push origin HEAD:refs/for/master

...

remote: New Changes:

remote:   http://gerrithost/#/c/RecipeBook/+/702 Change to a proper, yeast based pizza dough.

remote:

To ssh://gerrithost:29418/RecipeBook

* [new branch]      HEAD -> refs/for/master

你在本地做的修改push到服务器的refs/for/master之后,服务器就会自动开一个新的分支(相当于github上开了个pull request)。每个commit在commit message里面会有一个Change-Id,作为这个修改的唯一标识。以后改了这个commit之后,只要Change-Id不变,push上去之后gerrit都会认为这是同一个修改,就会在这个修改上增加一个新的版本。

【 在 wjhtingerx (ca6140) 的大作中提到: 】

: 在任何分支上push,都会激发这个review吗?review之前代码有没有真正push到服务器上?

iRoNcOoL
人在胖 天在看 03月04日

貌似你想要的是一种硬性的 review 流程,对方不 approve,就无法真正提交。

这个其实不在 git 本身的范畴。基于 git 的 github 的 PR 可能就接近你想要的。

但这种软性的约束还是容易的,你们可以自己约定,每个人的分支要合并到主分支之前,

需要 review,reviewer 同意后,才合并进去。

【 在 wjhtingerx (ca6140) 的大作中提到: 】

: 之前用svn,大家都往一个仓库提交代码,只需在提交过程增加一个review过程,review通过的才能真正上传到仓库,否则就会打回。

: 但是git各种分支,各种合并,review怎么操作呢?用啥工具?

graceman
过眼云烟 03月04日

合并分支的时候

【 在 wjhtingerx 的大作中提到: 】

: 之前用svn,大家都往一个仓库提交代码,只需在提交过程增加一个review过程,review通过的才能真正上传到仓库,否则就会打回。

: 但是git各种分支,各种合并,review怎么操作呢?用啥工具?

return0
家有开心 o 果果 03月04日

junior员工建个自己的分支,bug改完了,做个pull request, senior员工review代码,代码良好就merge到master或别的branch, 不好就继续修改,我们用bitbucket, 大家的权限都可以控制的

【 在 wjhtingerx 的大作中提到: 】

: 之前用svn,大家都往一个仓库提交代码,只需在提交过程增加一个review过程,review通过的才能真正上传到仓库,否则就会打回。

: 但是git各种分支,各种合并,review怎么操作呢?用啥工具?

: ...................

tazz
速度复合弓 03月04日

就是要像svn一样的。需要中心git服务器

gitlab bitbucket gitee

有很多开源的解决方案

其实用linux的话,git本身就自带了server

有个脚本gitweb,是perl写的cgi程序,放在apache上就可以。

具体请参考git howto文件

【 在 wjhtingerx 的大作中提到: 】

: 之前用svn,大家都往一个仓库提交代码,只需在提交过程增加一个review过程,review通过的才能真正上传到仓库,否则就会打回。

: 但是git各种分支,各种合并,review怎么操作呢?用啥工具?