手动同步外部 Git 存储库变更
如果外部存储库中提交的某些变更由于技术问题而未在 Codebeamer 中更新,则可以手动同步这些变更。
例如,在存储库中远程提交的四项变更中,有两项变更成功,而另外两项变更缺失。Git 日志显示所有四项变更:
commit dcbfe97a4b8577dd0f7cc4ef676f1245564d2d96
Author: bond <[email protected]>
Date: Tue Oct 31 11:42:04 2017 +0100
#27098 successful2
commit 45b18dbdf6a954301244647ea8665fd728d26200
Author: bond <[email protected]>
Date: Tue Oct 31 11:39:17 2017 +0100
#27098 missing2
commit 43983ddedabcc40e943a7ec2e79b228cd69102fa
Author: bond <[email protected]>
Date: Tue Oct 31 11:35:52 2017 +0100
#27098 missing1
commit 19fde45633ced7db2a3d88cd7b683e9f763f0686
Author: bond <[email protected]>
Date: Tue Oct 31 11:30:29 2017 +0100
#27098 successful1
另一方面,Codebeamer 仅显示存储库视图和项的四项变更中的两项:
要更正此问题,请在托管远程存储库的服务器上执行以下任务:
1. 根据 git 日志变更创建文本文件 (例如,missingchanges.txt)。将需要同步的各个变更都放置到一个新行中:
<old_hash_1> <new_hash_1> <target_1>
<old_hash_2> <new_hash_2> <target_2>
.
.
<old_hash_n> <new_hash_n+1> <target_n+1>
例如:
19fde45633ced7db2a3d88cd7b683e9f763f0686 43983ddedabcc40e943a7ec2e79b228cd69102fa refs/heads/master
43983ddedabcc40e943a7ec2e79b228cd69102fa 45b18dbdf6a954301244647ea8665fd728d26200 refs/heads/master
2. 通过执行以下命令,针对各个变更调用 git post-receive 挂接,(其中,<file_name> 是先前创建的文本文件,<path> 是存储库文件夹的路径):
cat <file_name>|<path>/hooks/post-receive
例如,从存储库文件夹中运行以下命令:
cat missingchanges.txt|./hooks/post-receive
完成上述步骤后,缺失的变更应显示在 Codebeamer 中:
这对您有帮助吗?