我正在尝试使用该Hudson Gerrit Trigger插件.
无论出于何种原因,Gerrit不接受SSH位于的密钥/var/lib/hudson/.ssh/id_rsa.
在GUI中我得到Connection error : com.jcraft.jsch.JSchException: Auth fail一个错误,当我在终端工作时,我得到一个Permission denied (publickey)错误.
我怎样才能生成和使用工作专用键,以便Hudson和Gerrit能发挥好?
我在gerrit中为我的公司设置了访问控制,在我们当前的内部流程中,同行评审员和编码员之间存在交叉(他们往往是同一群人).我们还希望只需要1位评论员对代码进行同行评审,如果看起来不错则提交.
使用默认设置,任何具有该+2: Looks good to me, approved选项的用户都可以查看自己的代码.
有没有办法阻止作者查看自己的代码,但仍然允许他们全面审查其他代码?我无法在访问控制组设置或权限设置中找到任何类型的排除作者.
我可以登录gerrit服务器并查看代码.但是当我点击退出时点击右上方的退出链接我无法退出,它将返回到Code Review Dashboard页面
下面是我的httpd.conf和gerrit.config,请帮帮我!!! 韩国社交协会...
<VirtualHost *>
ServerName localhost
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
AuthBasicProvider file
AuthUserFile /home/kk/gerrit/server/etc/passwords
Require valid-user
</Location>
ProxyPass / http://10.10.68.224:9091/
ProxyPassReverse / http://10.10.68.224:9091/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
gerrit.config
[gerrit]
basePath = git
canonicalWebUrl = http://10.10.68.224:9091/
[database]
type = H2
database = db/ReviewDB
[auth]
type = HTTP
[sendemail]
smtpServer = localhost
[container]
user = kk
javaHome = /usr/lib/jvm/java-6-sun-1.6.0.26/jre
[sshd]
listenAddress = *:29418
[httpd] …Run Code Online (Sandbox Code Playgroud) 当我点击注册或使用Gerrit Code Review登录时,我收到此错误: Provider is not supported, or was incorrectly entered.
当我手动将URL输入OpenID字段时,它会转到Google页面,说明: The page you requested is invalid.
有什么线索在这里发生了什么?
编辑:经过进一步调查,我意识到,如果我将OpenID字段中提供的URL更改为http而不是https,它会将我重定向到Google并请求我批准.然而,在重定向回Gerrit时,似乎没有发生任何事情.我尝试多次注册/签名,但没有效果.
我还在MySQL数据库中查看是否存储了任何数据,并且似乎没有.
编辑3:回答.我已经做得很好,可以更仔细地阅读以前的错误报告.我的系统管理员也非常缺乏.尽管如此,这是作为另一个bug的副本解决的,并且是Debian问题; 见下文.
我有一个Gerrit服务器(名为A),我想为新服务器(名为B)设置一个镜像.我想从B中取代而不是使用A的处理能力,因为A作为主要的Gerrit服务器,当我可以使用来自B的SSH镜像时,我不想在其上添加更多的工作量.
我正在使用H2数据库,我想镜像整个Gerrit +所有的Git repos,而不仅仅是Git repos,因为我想保留Gerrit数据库的权限/历史记录.
我设法缩小了两种可行的方法:
使用"格里特复制" http://gerrit.googlecode.com/svn/documentation/2.1.6/cmd-replicate.html 不知道它的"[--url <PATTERN>]"的意思.我应该在哪里运行此命令?它是在服务器A还是B上?
使用"rsync"即可,但我无法同步review_site/etc/gerrit.config,因为它包含服务器A的IP,并且不希望在服务器B上拥有它.
两个开发人员正在开发分支上进行两个完全不同的更改(例如,两个不同的文件).他们同时提交他们的工作,触发两个Jenkins构建.这些构建很好,但一篇评论比另一篇要长.
第一个dev提交他们的补丁集,并且没有开发的中间提交,所以Gerrit将其合并.
第二个dev后来提交了他们的补丁集.虽然现在有一个中间提交,但合并本身是微不足道的,Gerrit执行合并.
现在我们有两个构建,它们都不包含另一个构建的工作.
如果有任何中间提交,我想阻止第二次提交,即使合并完全无关紧要,导致开发人员改为重新提交并更新他们的提交(并在此过程中触发Jenkins中的新构建).
在审核完成后,我在Gerrit中设置了什么来阻止这些无关紧要但又不需要的合并,补丁集正在提交,但目标分支上有中间合并?
在将我的旧git存储库(位于redmine中)迁移到我的新Gerrit存储库时,我遇到了一些奇怪的问题.
基本上我做了一个
git clone --mirror ssh:// .... old-repo.git
cd old-repo.git/
git push --mirror ssh:// .... new-gerrit-repo
Run Code Online (Sandbox Code Playgroud)
好吧,现在我第一次收到一些警告:
remote: (W) a01300f: commit message lines >70 characters; manually wrap lines
remote: (W) 8def171: commit subject >65 characters; use shorter first paragraph
Run Code Online (Sandbox Code Playgroud)
我想我可以忽略,因为原始存储库仍然作为参考存在.
我的主要问题是这个错误:
! [remote rejected] refs/meta/config (cannot delete project configuration)
error: failed to push some refs to ssh:// .... new-gerrit-repo
Run Code Online (Sandbox Code Playgroud)
经过一些阅读后我发现,这个refs/meta/config分支只包含Gerrit的一些项目特定规则.它有一些用于参数化Gerrit的配置文件.(它基本上是Gerrit"常规"选项卡下的"项目选项"页面)没有与项目相关的源文件.
有人能帮我吗?保存忽略此错误并继续迁移吗?
访问推送;读取;为refs/meta/config上的管理员提供提交权限.什么都没有帮助.
谢谢你的每一条消息!
嘿我随着我正在做的一些工作随机地得到这些错误.通常我会在代码审查后编辑一个repo,然后运行以下命令.
git add .
git commit --amend
git review
Run Code Online (Sandbox Code Playgroud)
然后我有时会得到这个错误
error: unpack failed: error Missing blob c7eb8a2bcbe57f7f134819fbe6e2975b04b2e548
fatal: Unpack error, check server log
To ssh://a.b@address.com:29418/wns/chef/splunk-hop
! [remote rejected] HEAD -> refs/publish/develop (n/a (unpacker error))
error: failed to push some refs to 'ssh://a.b@address.com:29418/wns/chef/splunk-hop'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?这是我正在做的事情还是我推动它的服务器?
我有一个名为"UI_Developers"的gerrit组
我使用以下命令提交我的更改以供审阅:
git push origin HEAD:refs/for/master%r=abc@morg.com
Run Code Online (Sandbox Code Playgroud)
但是,我想将UI_Developers组中的所有成员添加为审阅者命令行.使用UI这很容易,通过使用命令行,任何想法如何添加整个gerrit组作为审阅者?
PS:ssh -p ...set-reviewers -a reviewer
方法非常繁琐,因此我不是在寻找它.
在搜索了一个灯并找到了不少类似的问题之后,他们似乎都没有真正回答我的问题(在我找到的相关问题列表下面).
我在尚未审核的提交之上开发了进一步的更改,但我希望将更改分开.当试图推送新补丁进行审核时,我收到错误:
! [remote rejected] HEAD -> refs/for/master (no changes made)
Run Code Online (Sandbox Code Playgroud)
场景: 在我的分支中,我有提交A(合并)< - 提交B(采摘/未合并)< - 提交C(我想推送的最近更改).
如上所述,Commit C依赖于B(但是因为我希望它们分开,所以无法进行压缩.同时删除B不是一个选项,因为它添加了尚未出现的更改是C).
因此,当我尝试推送Commit C进行审核时,我收到上面的错误消息(我知道这是因为Commit B低于新的Commit C).
我的问题是:在提交B合并之前,有没有办法只将 Commit C 发送给Gerrit?或者我真的必须等待B合并才能发送提交C?
家庭作业: