Git Gerrit工作流
我们一直在考虑从只使用Git过渡到Gerrit review环境,因为我们希望启用代码审查和运行自动单元测试 我们还希望使用Git流工作流(因为人们已经非常习惯它了)() 现在,我想知道我们的第一种方法在现实生活中是否有效 我们已设置以下访问控制:Git Gerrit工作流,git,gerrit,Git,Gerrit,我们一直在考虑从只使用Git过渡到Gerrit review环境,因为我们希望启用代码审查和运行自动单元测试 我们还希望使用Git流工作流(因为人们已经非常习惯它了)() 现在,我想知道我们的第一种方法在现实生活中是否有效 我们已设置以下访问控制: [access "refs/*"] owner = group MyProject Admin owner = group MyProject Project Owner [access "refs/for/refs/
[access "refs/*"]
owner = group MyProject Admin
owner = group MyProject Project Owner
[access "refs/for/refs/heads/*"]
push = group MyProject Contributor
push = group MyProject Developer
push = group MyProject Integrator
push = group MyProject Project Owner
pushMerge = group MyProject Developer
pushMerge = group MyProject Integrator
pushMerge = group MyProject Project Owner
forgeCommitter = group MyProject Integrator
forgeCommitter = group MyProject Project Owner
[access "refs/tags/*"]
read = group MyProject CI System
read = group MyProject Contributor
read = group MyProject Developer
read = group MyProject Project Owner
pushTag = group MyProject Integrator
pushTag = group MyProject Project Owner
[access "refs/heads/feature/*"]
read = group MyProject Contributor
read = group MyProject Developer
read = group MyProject Integrator
read = group MyProject Project Owner
create = group MyProject Contributor
create = group MyProject Developer
create = group MyProject Integrator
create = group MyProject Project Owner
forgeAuthor = group MyProject Contributor
forgeAuthor = group MyProject Developer
forgeAuthor = group MyProject Integrator
forgeAuthor = group MyProject Project Owner
push = group MyProject Contributor
push = group MyProject Developer
push = group MyProject Integrator
push = group MyProject Project Owner
pushMerge = group MyProject Contributor
pushMerge = group MyProject Developer
pushMerge = group MyProject Integrator
pushMerge = group MyProject Project Owner
rebase = group MyProject Contributor
[access "refs/heads/*"]
read = group MyProject CI System
read = group MyProject Contributor
read = group MyProject Developer
read = group MyProject Integrator
read = group MyProject Project Owner
create = group MyProject Integrator
forgeAuthor = group MyProject Developer
forgeAuthor = group MyProject Integrator
forgeAuthor = group MyProject Project Owner
push = group MyProject Integrator
push = +force group MyProject Project Owner
pushMerge = group MyProject Integrator
pushMerge = group MyProject Project Owner
label-Code-Review = -2..+2 group MyProject Developer
label-Code-Review = -2..+2 group MyProject Integrator
label-Code-Review = -2..+2 group MyProject Project Owner
label-Code-Review = -1..+1 group MyProject Contributor
label-Code-Review = -1..+0 group MyProject CI System
label-Verified = -1..+1 group MyProject Developer
label-Verified = -1..+1 group MyProject Integrator
label-Verified = -1..+1 group MyProject Project Owner
label-Verified = +0..+1 group MyProject CI System
submit = group MyProject Developer
submit = group MyProject Integrator
submit = group MyProject Project Owner
因此,所有要素将位于refs/heads/feature/*下。计划是从开发分支开始,从它创建一个特性,并处理该特性
git checkout -b feature/new-feature-xy develop
在功能分支上的工作期间,将执行几个新的提交。要启用与其他团队成员的协作(多个成员可能在同一功能上工作),用户将推拉功能分支
<do changes> # Do some work
$ git add <files> # Add files for revision (git add --all for add all files)
$ git commit –m ‘<Commit message>’ # or ammend if you like
$ git pull # Merge new commits from other users
$ git pull origin/develop # Merge from develop
$ git push # Push the feature for other team members
这是一个可接受的Gerrit工作流,还是您认为我们将来使用这种方式会遇到问题?您确定挤压提交将有助于审查吗?听起来您将要审阅大量的代码。如果审阅者对压缩的提交有意见怎么办?这些变化也会反映在源功能分支上吗?我不知道。。我的第一个想法是查看特性,而不考虑特性分支中的更改。但也许这不是一个好的处理方法。您有什么建议?我建议在提交过程中进行适当的审查,即在功能分支中(如果您需要的话)。这就是Gerrit的目标模式。但是如果一个贡献者实现了一个新功能(比如说1-2周),并在该功能分支上进行了大量提交(比如说>20),该怎么办呢。据我所知,这使得很多人对该功能进行了评论。将所有这些承诺压缩成一个,让团队成员检查该功能,而不是增加该功能,这是一个坏主意吗?他们不应该在一个功能上工作数周而不不断检查它。审阅较小的代码块会减少审阅者的时间,并导致更高质量的审阅。您确定挤压提交对审阅有用吗?听起来您将要审阅大量的代码。如果审阅者对压缩的提交有意见怎么办?这些变化也会反映在源功能分支上吗?我不知道。。我的第一个想法是查看特性,而不考虑特性分支中的更改。但也许这不是一个好的处理方法。您有什么建议?我建议在提交过程中进行适当的审查,即在功能分支中(如果您需要的话)。这就是Gerrit的目标模式。但是如果一个贡献者实现了一个新功能(比如说1-2周),并在该功能分支上进行了大量提交(比如说>20),该怎么办呢。据我所知,这使得很多人对该功能进行了评论。将所有这些承诺压缩成一个,让团队成员检查该功能,而不是增加该功能,这是一个坏主意吗?他们不应该在一个功能上工作数周而不不断检查它。审阅较小的代码块对审阅者来说花费更少的时间,并导致更高质量的审阅。
$ git checkout develop # Change branch to develop
$ git pull # Update develop
$ git merge --squash feature/new-feature-xy #Squash all commits in feature branch, merge it
$ git push origin HEAD:refs/for/develop # Push for review