gpt4 book ai didi

git - 为什么 Jenkins 的 Git 插件用额外的斜杠重写我的本地 git repo url?

转载 作者:太空狗 更新时间:2023-10-29 14:38:03 26 4
gpt4 key购买 nike

我现在在尝试设置 Jenkins 作业(在一台 Windows 服务器上)以监控位于 Gitosis 服务器(在另一台 Windows 服务器上)的内部 Git 存储库时遇到问题。

该 url 如下所示:ssh://git@192.168.0.1:relative_path/repo.git(为安全起见替换了实际值,相对路径也不适用于 '~/',它只在没有前导 '/' 的情况下有效。

当从带有 url 的命令行运行 git clone 时,一切正常。

在 Jenkins 作业中配置 Git SCM 时,它能够运行 ls-remote 命令(这确认为 Jenkins 实例正确配置了 ssh key )。

但是,当作业执行时,url 似乎被重写了一个额外的正斜杠,这导致克隆命令失败。

Started by user Meh
[EnvInject] - Loading node environment variables.
Building in workspace D:\local_repo_test
> git.exe rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git.exe config remote.origin.url ssh:///git@192.168.0.1:relative_path/repo.git # timeout=10
Fetching upstream changes from ssh:///git@192.168.0.1:relative_path/repo.git
> git.exe --version # timeout=10
> git.exe -c core.askpass=true fetch --tags --progress ssh:///git@192.168.0.1:relative_path/repo.git +refs/heads/*:refs/remotes/origin/*
ERROR: Error fetching remote repo 'origin'
ERROR: Error fetching remote repo 'origin'
Finished: FAILURE

困扰我的是“///”。有没有人见过这样的事情?

如有任何帮助,我们将不胜感激。

最佳答案

据我检查各种版本的 git 所知,您在 ssh 协议(protocol)中使用的相对路径语法是不明确的。它被解释为你希望在 Windows 上的 msysgit 版本上,但不是在我测试的任何其他平台上。

当我测试

  • git 1.7.1, CentOS 6.6, git clone ssh://mwaite@mark-pc1:bin/ 失败并报告ssh: Could not resolve hostname mark-pc1:bin:名称或服务未知
  • git 1.7.2.5, Debian 6, git clone ssh://mwaite@mark-pc1:bin/ 失败并报告 ssh: Could not resolve hostname mark-pc1:bin:名称或服务未知
  • git 1.7.10.4, Debian 7, git clone ssh://mwaite@mark-pc1:bin/ 失败并报告 ssh: Could not resolve hostname mark-pc1:bin:名称或服务未知
  • git 2.1.4,Debian 测试,git clone ssh://mwaite@mark-pc1:bin/ 失败并报告 fatal: '/' does not appear to be a git存储库
  • git 2.2.1,Ubuntu 14.04,git clone ssh://mwaite@mark-pc1:bin/ 失败并报告“fatal: '/' does not appear to be a git repository”
  • git 2.3.0, Ubuntu 14.04, git clone ssh://mwaite@mark-pc1:ssh/home/mwaite/bin 成功并从/home/mwaite/bin 克隆 repo 使用ssh 协议(protocol)

据我所知,如果冒号后的第一个单词是协议(protocol)(如 ssh)或端口号(如 22),那么它会被解释为用于存储库访问的服务或端口号。

我在 JENKINS-26680 中进一步描述了其中一些细节和 JENKINS-27483

关于git - 为什么 Jenkins 的 Git 插件用额外的斜杠重写我的本地 git repo url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27786733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com