我已经交了很多git repos,我已经创建了镜像。我试图推动gerrit审查时遇到以下错误
blake-macbook:repo blake$ git push ssh://gerrit-new/repo HEAD:refs/for/master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 359 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2)
remote: Processing changes: refs: 2, done
To ssh://gerrit-new/repo
! [remote rejected] HEAD -> refs/for/master (Unable to create changes:LOCK_FAILURE)
error: failed to push some refs to 'ssh://gerrit-new/repo'
Gerrit以自己的用户身份运行。我已经检查了文件系统权限并且已经刷新它们以防万一
chown -R gerrit.gerrit /home/gerrit/review-site
日志没有显示任何有用的信息
[2016-09-08 00:07:45,071] [ReceiveCommits-1] ERROR com.google.gerrit.server.git.ReceiveCommits : Command CREATE on repo:refs/changes/54/54/1 not completed: LOCK_FAILURE
[2016-09-08 00:07:45,072] [ReceiveCommits-1] ERROR com.google.gerrit.server.git.ReceiveCommits : Only 0 of 1 new change refs created in repo; aborting
我已经创建了一个群组调用“项目潜在客户”,几乎授予了默认的All-Projects访问方案中的每个权限,确保我的项目继承自All-Projects。
我还将我的测试用户添加到了Administrators组...没有骰子。同样的错误。
奇怪的是,它在5天前工作正常。我唯一要做的就是检查一个新分支,尝试提交到新分支(得到错误),现在每次提交都会出现错误(好吧,我尝试过的所有内容)如果我绕过审核,它会推得很好(虽然次优的解决方法)
任何帮助表示赞赏
编辑:如果你想知道ssh服务器/端口我在ssh配置文件上设置了
Host gerrit-new
HostName <server>
Port 29418
User <user>
IdentityFile ~/.ssh/<priv_key.rsa>
EDIT2:还尝试重启,重新索引,重启,并手动删除write.lock文件
答案 0 :(得分:1)
我们的服务器意外重启后,gerrit的数据库数据丢失了,帐户和提交信息也丢失了。我必须重新安装gerrit数据库。当我重新建立Gerrit索引时,我将重现此错误。重新将本地分支推送到远程,重新启动服务,然后不再报告此错误。希望可以帮助您。
Git remote remove origin
Git remote add origin ssh://XXXX@192.168.XX.XXX:29418/you_pro
Git push -u origin master
答案 1 :(得分:0)
您是否已经看过以下旧线程?
https://groups.google.com/forum/#!topic/repo-discuss/nvUnY346y14
https://bugs.chromium.org/p/gerrit/issues/detail?id=1593
也许他们可以帮助你或给出一些想法......
答案 2 :(得分:0)
我刚刚使用命令将提交的更改还原到登台区域 git reset --soft HEAD〜1
然后重试。它对我有用。