我有一个VSTS私人代理试图运行标准"获取来源"构建步骤,针对GIT存储库执行。
我有两个问题:
为什么代理人会尝试"结帐"拉文件后的存储库?据我所知,也许是错误的,"结帐"如果我计划跟踪文件的更改,则命令很有用。在这种情况下,我想要做的就是部署它们,因此结账似乎是不必要的。我没有看到" Get Sources"的任何配置选项。构建步骤以更改此行为。这似乎是一个简单的" Git Pull"应该足以抓住最新的变化。
Checkout似乎已经完成,但是代理正在报告失败而没有给出任何理由,并且该步骤被炸毁了。我不知道为什么。我还能找到其他日志吗?
以下是相关的剪切日志条目:
2018-04-17T22:40:56.3673827Z ##[section]Starting: Get Sources
2018-04-17T22:40:56.6017206Z Syncing repository: MyRepositoryName (TfsGit)
2018-04-17T22:40:56.6345172Z Prepending Path environment variable with directory containing 'git.exe'.
2018-04-17T22:40:56.6731072Z ##[command]git version
2018-04-17T22:40:57.6691314Z git version 2.14.3.windows.1
2018-04-17T22:40:57.7442618Z ##[command]git config --get remote.origin.url
2018-04-17T22:40:58.0387545Z ##[command]git config gc.auto 0
2018-04-17T22:40:58.2060676Z ##[command]git config --get-all http.https://accountname.visualstudio.com/TeamName/_git/MyRepositoryName.extraheader
2018-04-17T22:40:58.3387349Z ##[command]git config --get-all http.proxy
2018-04-17T22:40:58.5041394Z ##[command]git -c http.extraheader="AUTHORIZATION: bearer ********" fetch --tags --prune --progress --no-recurse-submodules origin
2018-04-17T22:41:01.0697064Z ##[command]git checkout --progress --force aa3e90152725f1f2489f9d657e02d29336a33ca6
2018-04-17T22:41:05.7394799Z Checking out files: 0% (85/285855)
2018-04-17T22:41:06.7309776Z Checking out files: 0% (162/285855)
...
2018-04-18T00:09:28.7067967Z Checking out files: 100% (285855/285855), done.
2018-04-18T00:09:34.7445251Z Note: checking out 'aa3e90152725f1f2489f9d657e02d29336a33ca6'.
2018-04-18T00:09:34.7445879Z
2018-04-18T00:09:34.7446180Z You are in 'detached HEAD' state. You can look around, make experimental
2018-04-18T00:09:34.7446601Z changes and commit them, and you can discard any commits you make in this
2018-04-18T00:09:34.7448203Z state without impacting any branches by performing another checkout.
2018-04-18T00:09:34.7448381Z
2018-04-18T00:09:34.7448593Z If you want to create a new branch to retain commits you create, you may
2018-04-18T00:09:34.7448803Z do so (now or later) by using -b with the checkout command again. Example:
2018-04-18T00:09:34.7448980Z
2018-04-18T00:09:34.7449144Z git checkout -b <new-branch-name>
2018-04-18T00:09:34.7449467Z
2018-04-18T00:09:34.7449669Z HEAD is now at aa3e90152... Deleted .vs
2018-04-18T00:09:35.7714386Z ##[error]Git checkout failed with exit code: 1
2018-04-18T00:09:35.7961679Z ##[section]Finishing: Get Sources
答案 0 :(得分:2)
需要结帐才能填充工作树,以便VSTS中定义的任务对签出的文件进行操作。
它在这里检查提交,而不是分支,这意味着它会产生detached HEAD,并不意味着跟踪任何新的提交。
我不知道更详细的日志
也许最后一个“已删除的.vs”在最后一步中遇到了一些错误(就像通过保留句柄来阻止删除的过程一样)。
通常,我尝试连接到构建代理服务器,并重现git命令以查看会发生什么。
OP在评论中报道:
我在结帐过程中发现“路径太长”的错误。
在这种情况下,如果可以,请在使用subst(see option 2)定义的驱动器号中配置要检出的作业。
检查你是否可以做partial (sparse) checkout,避免使用那条长路径的Git仓库部分。