【发布时间】:2016-05-31 10:36:41
【问题描述】:
我有 git 存储库的工作副本(不是裸存储库)。我还设置了本地 jenkins,我的工作指向这个 repo。一切正常。我想我昨天更新了詹金斯,今天早上我发现我的工作开始失败了。因为他们无法从我的仓库中获取源代码(它会超时)。
于是我开始调查。我决定在终端中重复 git 命令行以检查是否可以报告问题。这是我正在做的事情:
git config remote.origin.url file:///Users/eugenmartynov/Development/source/company/app-android
git fetch origin
然后挂起。而且我不知道还要检查什么。
我有 git 版本 2.8.3。但这没关系,因为我在使用 Xcode 工具的默认版本时看到了相同的行为
如果我尝试打开 git trace 日志记录,这就是我看到的:
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
【问题讨论】:
-
如果你尝试
git remote set-url origin file:///Users/....然后再尝试fetch,结果是一样的吗? -
听起来您经常更改原始网址...有什么理由不添加另一个遥控器?
-
我对本地 jenkins 有疑问。使用命令我试图报告 jenkins git 插件在做什么
-
同样的结果是我尝试
git remote set-url ... -
终端有输出吗?