为什么VSTS私人代理尝试GIT结账?

时间:2018-04-18 02:36:01

标签: git azure-devops

我有一个VSTS私人代理试图运行标准"获取来源"构建步骤,针对GIT存储库执行。

我有两个问题:

  1. 为什么代理人会尝试"结帐"拉文件后的存储库?据我所知,也许是错误的,"结帐"如果我计划跟踪文件的更改,则命令很有用。在这种情况下,我想要做的就是部署它们,因此结账似乎是不必要的。我没有看到" Get Sources"的任何配置选项。构建步骤以更改此行为。这似乎是一个简单的" Git Pull"应该足以抓住最新的变化。

  2. Checkout似乎已经完成,但是代理正在报告失败而没有给出任何理由,并且该步骤被炸毁了。我不知道为什么。我还能找到其他日志吗?

  3. 以下是相关的剪切日志条目:

    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
    

1 个答案:

答案 0 :(得分:2)

需要结帐才能填充工作树,以便VSTS中定义的任务对签出的文件进行操作。

它在这里检查提交,而不是分支,这意味着它会产生detached HEAD,并不意味着跟踪任何新的提交。

我不知道更详细的日志 也许最后一个“已删除的.vs”在最后一步中遇到了一些错误(就像通过保留句柄来阻止删除的过程一样)。
通常,我尝试连接到构建代理服务器,并重现git命令以查看会发生什么。

OP在评论中报道:

  

我在结帐过程中发现“路径太长”的错误。

在这种情况下,如果可以,请在使用subst(see option 2)定义的驱动器号中配置要检出的作业。

检查你是否可以做partial (sparse) checkout,避免使用那条长路径的Git仓库部分。