当我点击注册或使用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问题; 见下文.
在工作中,我们目前使用Subversion for SCM.我已经设置了一个本地git-svn镜像,并将其用作我的主要开发工作区.我现在对基本功能感到满意.团队中的另一个开发人员也想迁移到Git,因此我们正在考虑使用svn存储库的git镜像.我还想和Gerrit一起尝试这个练习.
我想象的设置是这样的:
svn存储库的git镜像.这上的主分支与svn上的主干同步.
对于每个要素,都会创建主题分支.这与审查发生的Gerrit有关.一旦变更集获得批准,Gerrit就会合并主题分支返回主变量.
gitweb或类似的Web应用程序,用于在浏览器上查看存储库.
除了trunk之外,其他分支在subversion上的类似过程.
基本上,我想要的是我只与我的本地git clone和Gerrit webapp交互; 将审查的更改推回到svn应该会自动发生.我如何设置这样的东西?
我有一个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上拥有它.
我们正在考虑将Gerrit用于大型项目.在这一点上,了解人们如何处理已批准变更的合并冲突将会很有趣.
想象一下,不同大小的许多变化同时待修订,并且正在逐步审查和验证.由于其中一些可能正在修改同一段代码,因此冲突是不可避免的.如果"集成商"在简单的工作流程中手动接受补丁,则可以在途中解决小的冲突,但Gerrit的情况有所不同,这不是问题.当审查和批准变更时,如果合并冲突,我理解,它将需要由作者重新定位并再次推送进行修订,在这种情况下,修订过程将再次开始.在相对活跃的项目中,每周有超过50个外部贡献者提交,如果由于每次批准和提交后合并拒绝可能需要多次修改相同的补丁,这可能会变成噩梦,这似乎是效率不高.
问题:
我是否正确认为Gerrit不是一个前进的方式,因为预期会发生大量的合并冲突?
一些合并冲突可能是微不足道的,有没有办法解决它们而不需要打扰作者重新发生变化?
如果需要将更改反向移植到稳定分支,我想每个分支的单独更改需要推送进行修订,即使樱桃选择是干净的.
关于您的Gerrit工作流程体验的一般评论也是受欢迎的.
两个开发人员正在开发分支上进行两个完全不同的更改(例如,两个不同的文件).他们同时提交他们的工作,触发两个Jenkins构建.这些构建很好,但一篇评论比另一篇要长.
第一个dev提交他们的补丁集,并且没有开发的中间提交,所以Gerrit将其合并.
第二个dev后来提交了他们的补丁集.虽然现在有一个中间提交,但合并本身是微不足道的,Gerrit执行合并.
现在我们有两个构建,它们都不包含另一个构建的工作.
如果有任何中间提交,我想阻止第二次提交,即使合并完全无关紧要,导致开发人员改为重新提交并更新他们的提交(并在此过程中触发Jenkins中的新构建).
在审核完成后,我在Gerrit中设置了什么来阻止这些无关紧要但又不需要的合并,补丁集正在提交,但目标分支上有中间合并?
我试图谷歌回答并自己弄清楚几个小时但没有成功.我的想法是像Gerrit的快速入门指南,遗憾的是在Windows下不起作用.我只是出于评估目的而需要它,所以H2 DB和其他不工作的电子邮件......都不是问题.
我正在尝试使用http baisc身份验证来配置gerrit,我的httpd配置是
<VirtualHost *:8081>
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 /usr/local/apache/passwd/passwords
Require valid-user
</Location>
ProxyPass / http://localhost:8081/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
和我的gerrit.config是
[gerrit]
basePath = git
canonicalWebUrl = http://localhost:8081/
[database]
type = mysql
hostname = localhost
database = reviewdb
username = gerrit
[auth]
type = HTTP
[sendemail]
smtpServer = localhost
smtpUser = gerrit
[container]
user = gerrit
javaHome = /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
[sshd]
listenAddress …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?
家庭作业: