解决Gerrit的git unpack error问题
有同事将代码提交到gerrit后,没有合并到代码库中。此时,由于版本问题将gerrit服务器上的git删除并重新上传。此后所有人都无法提交代码,报error: unpack failed: error Missing unknownf9be6c4dd1faa605802e5d586e57d848628b4214。
解决方法:到gerrit数据库中删除本次提交记录。步骤:
1、连接gerrit数据库:ssh -p 29418 git@host-ip gerrit gsql
2、根据f9be6c4dd1faa605802e5d586e57d848628b4214(commit_id)在patch_sets表中找到其change_id:
gerrit> select * from patch_sets where revision='5bb8a82e4fc616a7ab42b664492802da75625e7b';
REVISION | UPLOADER_ACCOUNT_ID | CREATED_ON | DRAFT | CHANGE_ID | PATCH_SET_ID
-----------------------------------------+---------------------+-------------------------+-------+-----------+-------------
5bb8a82e4fc616a7ab42b664492802da75625e7b | 1000275 | 2014-06-23 11:05:35.798 | N | 4013 | 1
(1 row; 1 ms)
3、根据change_id在changes表中找到该次提交:
gerrit> select * from changes where change_id=4013;
CHANGE_KEY | CREATED_ON | LAST_UPDATED_ON | SORT_KEY | OWNER_ACCOUNT_ID | DEST_PROJECT_NAME | DEST_BRANCH_NAME | OPEN | STATUS | NBR_PATCH_SETS | CURRENT_PATCH_SET_ID | SUBJECT | TOPIC | LAST_SHA1_MERGE_TESTED | MERGEABLE | ROW_VERSION | CHANGE_ID
------------------------------------------+-------------------------+-----------------------+------------------+------------------+--------------------------------------+-------------------+------+--------+----------------+----------------------+---------------------------+-------+------------------------+-----------+-------------+----------
Ifdee0776a87f1d784fdc63574ad1166b388e4953 | 2014-06-23 11:05:35.798 | 2014-06-23 11:05:35.8 | 002df29900000fad | 1000275 | Source/bootable | refs/heads/master | Y | n | 1 | 1 | Bug_ID:null Resolvent:led | NULL | NULL | N | 1 | 4013
(1 row; 0 ms)
4、将其关闭,并把状态置为Abandon。
gerrit> update changes set open='N',status='A' where change_id=4013;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
本文介绍了解决Gerrit中出现的gitunpackerror问题的方法。通过操作Gerrit数据库,定位并删除导致错误的提交记录,从而恢复正常的工作流程。
7946

被折叠的 条评论
为什么被折叠?



