Git fetch挂起

时间:2016-05-31 10:36:42

标签: git jenkins

我有git存储库的工作副本(不是裸存储库)。我还设置了当地的詹金斯,我的工作指向了这个回购。一切都很好。我想我昨天更新了jenkins,今天早上我发现我的工作开始失败了。因为他们无法从我的仓库获取源(它会超时)。

所以我开始调查了。我决定在终端重复git命令行来检查我是否可以报告问题。这就是我正在做的事情:

git config remote.origin.url file:///Users/eugenmartynov/Development/source/company/app-android
git fetch origin

它挂了。而且我也不清楚要检查什么。

我有git版本2.8.3。但这并不重要,因为我在使用Xcode工具的默认版本时看到了相同的行为

如果我尝试转动git trace logging,我就会看到这一点:

git fetch origin
14:25:53.549772 git.c:350               trace: built-in: git 'fetch' 'origin'
14:25:53.553987 run-command.c:336       trace: run_command: 'git-upload-pack '\''/Users/eugenmartynov/Development/source/company/app-android/.git'\'''
14:25:53.554490 run-command.c:195       trace: exec: '/bin/sh' '-c' 'git-upload-pack '\''/Users/eugenmartynov/Development/source/company/app-android/.git'\''' 'git-upload-pack '\''/Users/eugenmartynov/Development/source/company/app-android/.git'\'''
14:25:53.570196 run-command.c:336       trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'

以下是过去成功工作的日志:

Started by an SCM change
Building in workspace /Users/eugenmartynov/.jenkins/workspace/android-feature-lov-563-general-cards
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url file:///Users/eugenmartynov/Development/source/company/app-android/.git # timeout=10
Fetching upstream changes from file:///Users/eugenmartynov/Development/source/company/app-android/.git
 > git --version # timeout=10
 > git -c core.askpass=true fetch --tags --progress file:///Users/eugenmartynov/Development/source/company/app-android/.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/feature/lov-563-general-cards^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/feature/lov-563-general-cards^{commit} # timeout=10
Checking out Revision 932fc80699e765c1854c52051e0605698196d707 (refs/remotes/origin/feature/lov-563-general-cards)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 932fc80699e765c1854c52051e0605698196d707
 > git rev-list d35e0f1cee060b91366840296efc08854a8257b0 # timeout=10
 ....

这是第一个失败的工作的日志:

Started by an SCM change
Building in workspace /Users/eugenmartynov/.jenkins/workspace/android-feature-lov-563-general-cards
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url file:///Users/eugenmartynov/Development/source/company/app-android/.git # timeout=10
Fetching upstream changes from file:///Users/eugenmartynov/Development/source/company/app-android/.git
 > git --version # timeout=10
 > git -c core.askpass=true fetch --tags --progress file:///Users/eugenmartynov/Development/source/company/app-android/.git +refs/heads/*:refs/remotes/origin/*
ERROR: Timeout after 10 minutes
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from file:///Users/eugenmartynov/Development/source/company/app-android/.git
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:810)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1066)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1097)
    at hudson.scm.SCM.checkout(SCM.java:485)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1269)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
Caused by: hudson.plugins.git.GitException: Command "git -c core.askpass=true fetch --tags --progress file:///Users/eugenmartynov/Development/source/company/app-android/.git +refs/heads/*:refs/remotes/origin/*" returned status code 141:
stdout: 
stderr: 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1719)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1463)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:63)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:314)
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:808)
    ... 11 more
ERROR: null

1 个答案:

答案 0 :(得分:1)

我猜你使用的是错误的网址。对于本地路径,您只需使用该路径。您的网址看起来像UNC路径,即Users是主机名,其余是共享目录。因此,它尝试解析可能需要一些时间的主机名。

您的网址缺少磁盘名称。我想这是Windows。

所以,你可以提供完整的路径,我猜git remote set-url origin c:/Users/eugenmartynov/Development/source/company/app-android。或者,如果我是对的,你可以添加更多斜杠:file://///c:/...

BTW,git fetch可以接受不需要添加遥控器的网址。