Gerrit - 推送带注释的标签 - "failed to lock"
Gerrit - Push Annotated Tag - "failed to lock"
我已经尝试了几种方法将 git 上的注释标签推送到由 gerrit 处理的存储库中。
使用以下内容创建 v0.1:
# git tag -a -m "message" v0.1
然后,当尝试推送时...
# git push --tags ssh://<user>@<gerrit server>/<project>
它总是给我一个 "failed to lock" 错误。
...
! [remote rejected] v0.1 -> v0.1 (failed to lock)
...
我已经配置了项目访问权限以将 Push Annotated Tag 添加到 refs/tags/* 引用中。
还有什么我想念的吗?
** 已编辑 - 添加来自 gerrit gc 和 git fsck 的结果:
$ ssh -p 29418 <user>@<server> gerrit gc <project> --show-progress
collecting garbage for "<project>":
Pack refs: 100% (13/13)
Counting objects: 78
Finding sources: 100% (78/78)
Getting sizes: 100% (37/37)
Writing objects: 100% (78/78)
Selecting commits: 100% (7/7)
Building bitmaps: 100% (7/7)
Finding sources: 100% (23/23)
Getting sizes: 100% (14/14)
Compressing objects: 100% (3094/3094)
Writing objects: 100% (23/23)
Prune loose objects also found in pack files: 100% (24/24)
Prune loose, unreferenced objects: 100% (24/24)
现在 git fsck:
$ git fsck --no-dangling
Checking object directories: 100% (256/256), done.
Checking objects: 100% (101/101), done.
一切似乎都很好...
但是,仍然无法将带注释的标签推送到 gerrit 中。
也许您的服务器中已经有一个名为 v0.1 或 v0.1/ 的标签。我能够通过以下命令重现 "failed to lock" 错误 运行:
git tag -a -m "Test" foo/boo
git push origin tag foo/boo
git tag -d foo/boo
git tag -a -m "Test" foo
git push origin tag foo
我已经尝试了几种方法将 git 上的注释标签推送到由 gerrit 处理的存储库中。 使用以下内容创建 v0.1:
# git tag -a -m "message" v0.1
然后,当尝试推送时...
# git push --tags ssh://<user>@<gerrit server>/<project>
它总是给我一个 "failed to lock" 错误。
...
! [remote rejected] v0.1 -> v0.1 (failed to lock)
...
我已经配置了项目访问权限以将 Push Annotated Tag 添加到 refs/tags/* 引用中。
还有什么我想念的吗?
** 已编辑 - 添加来自 gerrit gc 和 git fsck 的结果:
$ ssh -p 29418 <user>@<server> gerrit gc <project> --show-progress
collecting garbage for "<project>":
Pack refs: 100% (13/13)
Counting objects: 78
Finding sources: 100% (78/78)
Getting sizes: 100% (37/37)
Writing objects: 100% (78/78)
Selecting commits: 100% (7/7)
Building bitmaps: 100% (7/7)
Finding sources: 100% (23/23)
Getting sizes: 100% (14/14)
Compressing objects: 100% (3094/3094)
Writing objects: 100% (23/23)
Prune loose objects also found in pack files: 100% (24/24)
Prune loose, unreferenced objects: 100% (24/24)
现在 git fsck:
$ git fsck --no-dangling
Checking object directories: 100% (256/256), done.
Checking objects: 100% (101/101), done.
一切似乎都很好... 但是,仍然无法将带注释的标签推送到 gerrit 中。
也许您的服务器中已经有一个名为 v0.1 或 v0.1/ 的标签。我能够通过以下命令重现 "failed to lock" 错误 运行:
git tag -a -m "Test" foo/boo
git push origin tag foo/boo
git tag -d foo/boo
git tag -a -m "Test" foo
git push origin tag foo