在Jenkins中通过HTTP克隆存储库时遇到问题。仅在具有12个以上分支或总共18个分支和标签的存储库中出现此问题。
运行以下命令:
git clone http://USERNAME:PASSWORD@bitbucket.company.org/scm/key/repo.git
当有11个分支或总共17个分支和标签时,克隆工作完全正常。如果超过该数字,克隆将失败,并显示以下错误:
error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500
fatal: The remote end hung up unexpectedly
Bitbucket运行时的日志级别为DEBUG,我在日志中找不到更多信息。
服务器上的版本:
Bitbucket服务器5.14.0 Git 2.19.0
本地版本:
Git 2.17.1
PS:我没有在代理后面运行Bitbucket。
我检查了atlassian-bitbucket.log,它确实显示了与克隆存储库有关的错误:
The following was written to stderr:
fatal: the remote end hung up unexpectedly
com.atlassian.utils.process.ProcessException: Non-zero exit code: 1
at com.atlassian.bitbucket.scm.SummarizingProcessHandler.complete(SummarizingProcessHandler.java:47)
...
我试图设置postBuffer:
git config --global http.postBuffer 524288000
我尝试使用用户名和密码作为输入进行克隆,但是在12个以上的分支上仍然失败:
git clone http://bitbucket.company.org/scm/key/repo.git
存储库的大小无关紧要,因为我可以用较少的分支克隆大型存储库。
如果我使用SSH,它确实可以工作,但这不是我的用例的选择。由于每个发行版都有一个发行分支,并且标记的数量确实会随着时间的推移而增长,所以我希望这对于其他人也是一个问题。
在尝试在Jenkins管道中进行克隆时,我尝试了以下配置以获取不仅仅是浅层克隆的更多内容。
checkout([
$class: 'GitSCM',
branches: scm.branches,
extensions: [
[
$class: 'CloneOption',
honorRefspec: false,
noTags: false,
shallow: false,
]
],
userRemoteConfigs: scm.userRemoteConfigs,
])
我希望无论分支数量多大,它都能够克隆存储库。有谁知道为什么会这样吗?任何帮助都会被接受。
答案 0 :(得分:0)
您是否尝试过带有凭据步骤的常规git步骤?