Rover12421's Blog

The End.

Git镜像的权限设置

        接上篇,前两天新加了个repo,发现不能同步,遇到了权限问题.由于上篇测试,用的权限都是"RW+ = @all",所以没啥问题.

        先加了个RsApktool的repo,配置好了mirror.配置如下:

>adminLocal$:vi conf/gitolite.conf
repo RsApktool
RW+ = rover12421
option mirror.master = gitlocal
option mirror.slaves = gitmirror
option mirror.redirectOK = all

>adminMirror$:vi conf/gitolite.conf
repo RsApktool
RW+ = rover12421

        以为这样就没事了,然后一直push,感觉很快,然后想验证一把是否正的同步到镜像服务器上去了.
>adminLocal$:cd ~/
>adminLocal$:git clone gitmirror:RsApktool

       结构clone是空的.

warning: You appear to have cloned an empty repository.

        没办法,直接push操作也没任何提示,只好用手动提交镜像,看提示啥了.
>gitlocal$: gitolite mirror push gitmirror RsApktool
FATAL: W any RsApktool server-gitlocal DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly

          看到这里,大概就明白啥意思了, server-gitlocal 对 RsApktool 没有权限,看到这我也大体明白了git mirror自动提交的思路了,他用了本地配置的server帐号去提交更新到mirror里的,所以,如果想要正常的提交到镜像服务器,需要在镜像的repo配置添加上服务端的用户权限.修改后的权限如下:

>adminMirror$:vi conf/gitolite.conf
repo RsApktool
RW+ = rover12421 server-gitlocal

         再次push,这次卡了很久,还以为死了,前几次都ctrl+c取消了,后面测试testing发现服务器比较慢,我的RsApktool项目又比较大了,第一次提交,肯定很慢.最后git push睡觉去.今天早上起来和理想状态一样,成功提交,clone测试正常!

Comments