问题标签 [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.
git - Gerrit 变更合并 Hook
我使用 git 作为我的版本控制系统,并建立了一个 Gerrit 站点来进行代码审查。我想创建一个钩子来执行以下操作:
- 当管理员单击提交按钮时,应该修改一个文件(称为version.txt )。
- 脚本应该打开文件。
找到以下文本(ID 可能会更改的地方)
#version Change-Id: Ie1411d50f6beb885bc3d3b7d8c587635e1446c18
将 Change-Id 替换为新补丁的 Change-Id。
因此,如果要合并的补丁具有,
Change-Id: I1c25f7b967084008b69a6a8aefa6e3bb32967b82
则version.txt文件应在脚本运行后包含以下字符串:#version Change-Id: I1c25f7b967084008b69a6a8aefa6e3bb32967b82
- 然后钩子应该创建一个新的提交(因为现在其中一个文件发生了变化)并将最后一个提交推送到主控。
我觉得这可以使用更改合并的钩子来实现。我对吗?
提前致谢。
git - 詹金斯配置
我有一个 GIT 存储库。当我将 GIT 更改推送到 Gerrit 时,它会触发 jenkins 构建,如果成功,它将代码合并到 GIT 存储库。
但是,Jenkins 总是从 GIT repo 构建源代码。它没有选择推送到 Gerrit 的更改。
我应该在 Gerrit/Jenkins 中更改哪些设置?
git - 有没有办法强制 Gerrit 将分支中的所有提交都推送到代码审查?
Gerrit 将合并提交历史中较早且位于存储库的不同“分支”中的可能未审查的更改。这是一个例子:
- 结帐 gerrit 分支
devel
- 创建 file1.txt,添加,提交,推送到
refs/heads/temp_branch
- 创建 file2.txt,添加,提交,推送以
refs/for/devel
进行代码审查
当 file2.txt 被接受并合并时,file1.txt,因为它在上游而不是在标记为正在审查的单独更改分支中,也会被合并。这可能是非常有问题的,我能想出的唯一解决方案是强制对推送到每个分支的每个更改进行代码审查。这并不理想,因为您可能希望某些分支有一组批准者,或者没有代码审查(对于某些代码交换?)。
这里的解决方案是强制将历史记录中的每个提交都放入代码审查中,就像 file1.txt 没有被推送到同一存储库中的不同分支一样。
Gerrit 中是否存在强制执行此规则的设置?谁能想到一个允许自由推送refs/heads/
而不冒污染其他分支的工作流程?
非常感谢。
gerrit - 如何订阅 Gerrit 项目?
如何订阅 gerrit 项目,以便在上传新更改时通知我。
谢谢,拉维
git - 将分支“a”重命名为 master
如何在gerrit中将分支'a'重命名为'master'并将'master'重命名为'b'?
我最近从一个共享的 git 存储库切换到了 gerrit。
git - 使用 SourceTree 推送到 gerrit
我不知道如何让 SourceTree 推送到 Gerrit。
我看到了这个链接,但我仍然不明白它是如何完成的: https ://answers.atlassian.com/questions/29361/configuring-sourcetree-push-for-gerrit
显然,根据 1.3.3 的发行说明,有一种方法可以做到,但我无法弄清楚: http: //www.sourcetreeapp.com/update/ReleaseNotes.html#version-1.3.3
是否有关于如何操作的分步指南?
现在我在终端上运行这个命令来推送
git - 是否应该在 gerrit 管理的 git 存储库上定期运行“git gc”?
定期运行 cgit 会造成任何伤害(因为 gerrit 使用 JGit 操作 repo)?JGit 会自动执行这个功能吗?
gerrit - Gerrit 修订工作流程:合并冲突和重新批准
我们正在考虑将 Gerrit 用于大型项目。在这一点上,了解人们如何处理已批准更改的合并冲突会很有趣。
想象一下,许多不同大小的更改同时等待修订,并且正在逐步审查和验证。由于其中一些可能正在修改同一段代码,因此冲突是不可避免的。如果“集成商”在简单的工作流程中手动接受补丁,这不是问题,小冲突可以在途中解决,但对于 Gerrit,情况就不同了。修改审核通过后,如果发生合并冲突,据我了解,需要作者重新定位并再次推送修订,在这种情况下,重新开始修订过程。在相对活跃的项目中,每周有超过 50 个外部贡献者提交,这可能会变成噩梦,
问题:
我是否正确,Gerrit 不是预期会发生大量合并冲突的大型活跃事物的前进方向?
一些合并冲突可能是微不足道的,有没有办法解决它们而不需要打扰作者重新提交更改?
如果需要将更改向后移植到稳定的分支,我想每个分支的单独更改都需要推送以进行修订,即使樱桃选择是干净的。
也欢迎对您的 Gerrit 工作流程体验发表一般评论。
git - 多个詹金斯/格里特项目
我们正在完成新 CI 系统的设置,包括用于自动化测试和代码审查的 git、gerrit 和 jenkins,我们发现了一个奇怪的情况:
我们有三个不同的 gerrit 项目,每个项目都有自己的 Jenkins 工作。我们使用本指南作为设置参考,一切都已安装并且工作正常。
我们的第一个项目已经设置好,并使用示例更改补丁进行了测试。Jenkins 被正确触发,通过了测试并按预期对构建进行了“验证”投票。到目前为止,一切都很好!
但是:当我们尝试设置第二个项目时,我们发现其中一个项目中的更改补丁会触发每个 jenkins 作业中的更改。例如:
假设我们有 GerritProjectA 和 GerritProjectB,每个都有 JenkinsProjectA 和 JenkinsProjectB。当向 GerritProjectA 提交更改时,JenkinsProjectA 和 JenkinsProjectB 都会被触发。此外,在构建之后的 gerrit 投票中有些东西混淆了:这是 sshd_log 在其中一个构建之后的信息(一个在 JenkinsProjectB 中):
如您所见,gerrit 批准命令与两个不同 jenkins 作业的信息混合在一起......
任何詹金斯工作的示例设置:
软件版本:
有任何想法吗?提前致谢!
多明戈
git - 如何在 ubuntu 11.04 上安装 Gerrit?
有人可以发布一些简单的教程,如何通过命令行在 Ubuntu 11.04 上使用 gerrit 安装和配置 git。我找到了这个教程: http: //gerrit.googlecode.com/svn/documentation/2.0/install.html
但我可以弄清楚我必须如何设置数据库。我是否必须为每个将提交到存储库的人创建一个单独的用户?
如果你有一些有用的链接或建议,甚至想发布教程(我希望你这样做:))请与我分享。
现在我初始化了gerrit,但我之后得到的唯一消息是:
并且没有创建 *.sh 文件。我究竟做错了什么?
好的,如果有人正在阅读此链接,我想更新状态。我设法在 Ubuntu 上(在 http 上)安装和运行 Gerrit,但是当我浏览 Web UI 时,有时会出现内部服务器错误。我该如何解决这个问题?