问题标签 [gerrit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2205 浏览

git - 将旧的 git 项目导入 Gerrit

我正在尝试在我们的 git 存储库上安装 gerrit。我们有很多项目保存在 git 存储库中。安装后,从 Web 界面看起来一切正常。我可以从 admin>projects 菜单中看到项目。我可以将用户或组添加到 gerrit。但是,如果我想在管理菜单服务器中单击访问链接时向项目添加访问规则,则会返回应用程序错误、服务器错误(内部服务器错误)。

如果我从管理菜单的常规选项卡更改任何设置,我可以传递此错误,但这次我无法将更改提交到我的 git 服务器。

错误日志的完整跟踪是这样的;

[2011-06-10 10:36:20,111] WARN /:com.google.gerrit.server.git.VersionedMetaData.getRevision(VersionedMetaData.java:69) 的 com.google.gerrit 的 projectAccess java.lang.NullPointerException 出错.httpd.rpc.project.ProjectAccessFactory.call(ProjectAccessFactory.java:92) 在 com.google.gerrit.httpd.rpc.project.ProjectAccessFactory.call(ProjectAccessFactory.java:40) 在 com.google.gerrit.httpd.rpc .Handler.to(Handler.java:65) 在 com.google.gerrit.httpd.rpc.project.ProjectAdminServiceImpl.projectAccess(ProjectAdminServiceImpl.java:75) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl。在 com.google.gwtjsonrpc.server.MethodHandle.invoke(MethodHandle.java:91) 在 com.google.gwtjsonrpc 的 java.lang.reflect.Method.invoke(Method.java:597) 调用(DelegatingMethodAccessorImpl.java:25) .server.JsonServlet.doService(JsonServlet.java:382) 在 com.google.gwtjsonrpc.server.JsonServlet.service(JsonServlet.java:268) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:216) 在 com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:141) 在 com.google.inject.servlet.ManagedServletPipeline.service( ManagedServletPipeline.java:93) 在 com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:63) 在 com.google.inject.FilterDefinition.doFilter(FilterDefinition.java:134) 在 com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59) 在 com.google.inject.servlet.FilterDefinition .doFilter(FilterDefinition.java:134) 在 com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59) 在 com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:134) 在 com。 google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59) 在 com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:76) 在 com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition. java:129) 在 com.google.inject.servlet.FilterChainInvocation。doFilter(FilterChainInvocation.java:59) 在 com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:134) 在 com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59) 在 com.google .gerrit.httpd.RequestCleanupFilter.doFilter(RequestCleanupFilter.java:54) 在 com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:129) 在 com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java :59) 在 com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122) 在 com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110) 在 org.eclipse.jetty.servlet。 org.eclipse.jetty 上的 ServletHandler$CachedChain.doFilter(ServletHandler.java:1322)。servlet.ServletHandler.doHandle(ServletHandler.java:473) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:921) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: 403) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 在 org.eclipse.jetty 的 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:856) .server.handler.HandlerWrapper.handle(HandlerWrapper.java:114) 在 org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:59) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle (HandlerWrapper.java:114) 在 org.eclipse.jetty.server.Server.handle(Server.java:352) 在 org.eclipse.jetty.server.HttpConnection。handleRequest(HttpConnection.java:596) at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1069) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) at org .eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) 在 org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle (SelectChannelEndPoint.java:510) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40 ) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662)662)662)596) 在 org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) 在 org.eclipse.jetty.http 的 org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1069) .HttpParser.parseAvailable(HttpParser.java:218) 在 org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510 ) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) 上的 org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)。 jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662)596) 在 org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) 在 org.eclipse.jetty.http 的 org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1069) .HttpParser.parseAvailable(HttpParser.java:218) 在 org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510 ) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) 上的 org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)。 jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662)org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) 上的 HttpConnection$RequestHandler.content(HttpConnection.java:1069) org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)在 org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) 在 org.eclipse.jetty.io.nio .SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run( QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662)org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) 上的 HttpConnection$RequestHandler.content(HttpConnection.java:1069) org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)在 org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) 在 org.eclipse.jetty.io.nio .SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run( QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662)HttpParser.parseNext(HttpParser.java:805) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) at org .eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) 在 org.eclipse.jetty.io。 nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) at java.lang.Thread.run(Thread.java:662)HttpParser.parseNext(HttpParser.java:805) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) at org .eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) 在 org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) 在 org.eclipse.jetty.io。 nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) at java.lang.Thread.run(Thread.java:662)org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) 的句柄(HttpConnection.java:426) org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34 ) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang 的 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)。线程.run(线程.java:662)org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) 的句柄(HttpConnection.java:426) org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34 ) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang 的 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)。线程.run(线程.java:662)QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662)QueuedThreadPool$2.run(QueuedThreadPool.java:450) 在 java.lang.Thread.run(Thread.java:662)

编辑:改回稳定版一切正常。

0 投票
5 回答
28686 浏览

gerrit - 无法在 Gerrit 上添加评论。它宁愿被添加为草稿。我究竟做错了什么?

无法在 Gerrit 上添加评论。它宁愿被添加为草稿。我究竟做错了什么?不过,我团队中的其他人可以添加评论。

0 投票
3 回答
1534 浏览

git - 如何让 Gerrit 的代码审查在成功提交时输出电子邮件差异?

现在它只是显示:

以前,当我们使用 Gitolite 时,我们使用git-commit-notifier在我们的开发者邮件列表中拥有漂亮的彩色差异(这是一个接收后挂钩)。

我可以在 Gerrit 实例中进行相同的设置,但随后我们将使用两种不同的邮件机制、电子邮件模板和成功合并的双重电子邮件。

0 投票
1 回答
1544 浏览

git - 我的 git 服务器的 gerrit 设置

我在远程服务器上有大约 10 个 git 存储库,现在我想设置 gerrit 以进行代码审查。有人可以简要介绍一下如何配置 gerrit 项目。

我已经设置了 gerrit,并且站点正确显示,管理员中没有列出任何项目。

将我的 10 个项目导入 gerrit 的下一步是什么以及如何将评论上传提交到 gerrit.. 我需要创建/克隆的项目名称到底是什么.. 克隆/推送时我需要使用什么用户.. 路径我需要用。。

这是我的详细信息。我查看了所有谷歌网站,但无法找到如何开始使用 gerrit ..

gerrit 已安装 -- /home/gerrit2/review_site gerrit 与用户一起安装 -- gerrit 我所有 10 个 git 项目已安装 -- /home/repos/ 10 个 repos 在远程用户上创建 -- web

感谢早期的回应。

0 投票
4 回答
5976 浏览

git - 是否可以在不修改/压缩提交的情况下将补丁集添加到 Gerrit 审查中

一个简单的例子。我对 Gerrit 进行了更改,这会破坏 CI 构建或审阅者不满意。然后我用另一个提交来修复我的更改。在许多情况下,这是一个小的补丁集,我不想要新的 gerrit 审查,而是作为原始审查中的新补丁集。

我知道这可以通过使用 amend 或 rebase 和 squashin 来实现。

这是唯一的选择吗?我们有点担心必须使用变基和压缩来重写历史。

谢谢,

乔。

0 投票
2 回答
2307 浏览

git - 将多个不相关的提交推送到远程 git repo

我有一种情况,我在一个特定的分支上从事两个不同的项目。我已经完成了项目“A”,提交了更改,并将更改推送到远程。此更改“A”目前正在审核中,因此尚未合并到分支。同时,我已经开始为同一分支中的另一个项目进行不相关的更改,将此更改称为“B”。我也完成了这个更改的编码,我准备提交并推送它。但我不确定这应该如何完成,因为更改“A”尚未合并。如何将这两个更改“A”和“B”作为不依赖于彼此的单独更改推送?

0 投票
1 回答
2778 浏览

git - Gerrit - 复制到 github?

努力让 gerrit 复制工作。这是我的 replication.config 示例

我认为我做得对,但是当我强制进行手动 gerrit 复制时,我会看到:

现在

0 投票
1 回答
1060 浏览

git - 如何在远程位置设置 Gerrit 镜像

我们在欧洲使用 git 和 Gerrit 进行代码审查,它运行良好;)问题是我们在亚洲的同事有互联网连接,这使得克隆、推送和拉取需要很长时间。有没有办法设置一个 Gerrit 镜像,这样每次提交都必须在欧洲和亚洲之间传输一次?我知道 Gerrit 支持复制,但我不确定这是否是答案,因为我希望能够推动和拉动双方。

0 投票
1 回答
6409 浏览

gerrit - gerrit:使用 LDAP 身份验证并拥有 Jenkins 的 gerrit-local 帐户

我们在公司环境中使用 LDAP 身份验证的新 gerrit 2.2.1 服务器。我们还有一个作为本地 UNIX jenkins 用户运行的 Jenkins 服务器,我想用 gerrit 签入并将构建结果发布到 gerrit 中。

我们没有“jenkins”LDAP 帐户,即使有,系统组也不会提供系统帐户的密码,所以我无法进入 Web UI,创建帐户并添加 jenkins 的 publich ssh 密钥。如何将“jenkins”帐户添加到 Jenkins 可以使用的 gerrit?我们已经有很多人在 Gerrit 注册了,所以我需要小心任何操作。

0 投票
4 回答
9288 浏览

git - 与 Gerrit 一起使用时,如何为 Git 配置特定的上游推送 refspec?

我正在使用Gerrit Code Review设置 Git,并正在寻找一种方法,让可能是 Git 新手的用户能够相对简单地使用必要的 Git 命令。

我目前用于启动新功能分支的命令本质上是(假设 Gerrit 是origin):

work1234这会启动一个从 some 分支的新工作包baseline,最终推送会在 Gerrit 中创建分支并设置上游。所以.git/config看起来像:

现在,例如,Gerrit 希望将新的提交审核推送到特殊的 refspec refs/for/work1234。我可以手动执行此操作:

我想做的是找到一些方法来设置,.git/config以便一个普通git push的将当前分支推送到 Gerrit 需要的遥控器上的 refspec。我研究了以下git config领域:

  • branch.<name>.*- 似乎没有任何特定的选项来设置推送 refspec
  • push.default- 我有点想要upstream这里
  • remote.<name>.push- 我refs/heads/*:refs/for/*在这里尝试过,但在这种情况下git push总是想推送所有本地分支,而我只想要当前分支

如果我不能让 Git 自己做到这一点,我将编写一个完全指定 refspecs 的小包装脚本。但是,如果 Git 可以原生推送到正确的位置会更好。