Gerrit主要功能
Gerrit是目前使用的比较多的集成开发的一个工具,主要功能有一下几点
1、进行代码的review,保证代码提交到正式库里面代码是可用的,其中review可以和Jekins一起完成集成编译测试等
2、可以对代码进行相关的权限管理,根据项目的需求分配不同的权限给到相关的开发人员
Gerrit权限处理的相关指令
Gerrit里面可以对相关的git仓库进行权限的配置,默认的配置可以参照网上的Gerrit的配置里面一些说明,这里写的是如何通过相关的命令将当前的权限更改为适合的权限,通过下面的命令可以看到当前Gerrit有哪些重要的指令:ssh -p 29418 192.168.1.104 gerrit --help
通过上面的指令我们可以看到当前我们的Gerrit提供了相关的一些操作说明:
apropos Search in Gerrit documentation
ban-commit Ban a commit from a project's repository
close-connection Close the specified SSH connection
create-account Create a new batch/role account
create-branch Create a new branch
create-group Create a new account group
create-project Create a new project and associated Git repository
flush-caches Flush some/all server caches from memory
gc Run Git garbage collection
gsql Administrative interface to active database
index
logging
ls-groups List groups visible to the caller
ls-members List the members of a given group
ls-projects List projects visible to the caller
ls-user-refs List refs visible to a specific user
plugin
query Query the change database
receive-pack Standard Git server side command for client side git push
rename-group Rename an account group
review Apply reviews to one or more patch sets
set-account Change an account's settings
set-members Modify members of specific group or number of groups
set-project Change a project's settings
set-project-parent Change the project permissions are inherited from
set-reviewers Add or remove reviewers on a change
show-caches Display current cache statistics
show-connections Display active client SSH connections
show-queue Display the background work queues
stream-events Monitor events occurring in real time
test-submit
version Display gerrit version
这里,主要介绍下set-project-paren,这个指令能够帮助我们更改相关的权限,具体的指令如下
ssh -p 29418 192.168.1.104 gerrit set-project-parent --parent $auth_project "$projectname" > /dev/null
其中auth_project是指你已经创建的权限,比如app_auth,projectname,指的是当前的git库。通过这样的指令就可以将当前的库设置为你想要的权限。
这边可能有人会说,我们在Gerrit的图形化界面就可以设置,你这个指令没有什么作用,其实不然,如果你设置单独的一个库是这样的属性的话,从Gerrit上面就可以直接设置了,很简单的操作,但是如果你的库很多,比如Android项目,里面的库很多很多,你在Gerrit上面使用这个的话就比较麻烦了,这时候就可以使用这样的命令来进行批量的修改,下面就介绍下如何批量的修改。
首先,你可以将repo下载下来的default.xml导出来,然后创建一个shell脚本文件,就可以完成批量的操作了。
具体的脚本可以参照下面:
#!/bin/bash
pre_project="NJ-projects/atc_androidm/apps"
auth_project="atc_bsp_auth"
#auth_project="app_auth"
#auth_project="bsp_read_auth"
#auth_project="b20b_app_auth"
#auth_project="b20b_bsp_auth"
[ -f 1.log ] && rm -rf 1.log grep ' 1.log
for line in `cat 1.log`
do
projectname=$pre_project'/'$line
echo $projectname
if [ x$projectname != x$pre_project'/' ]
then
ssh -p 29418 192.168.1.104 gerrit set-project-parent --parent $auth_project "$projectname" > /dev/null
echo 1
fi
done
将上面的脚本运行即可更改当前的库的相关的权限,十分的简单快捷。