2016-03-04 7 views
3

Я использую git lfs для хранения больших файлов моего git-репо. Затем я пытаюсь создать это репо с размещенными агентами. Моя сборка довольно проста. У него есть одна задача: выполнить PowerShell. В вызываемом скрипте первое, что я хочу сделать, - это получить мои зависимости lfs. Поэтому у меня есть следующие в моем сценарии:Как использовать git lfs с Visual Studio Team Services размещаемых агентов сборки

& git lfs fetch 

К сожалению, моя сборка не может со следующей ошибкой:

2016-03-04T19:49:05.7021988Z ##[error]git: 'lfs' is not a git command. See 'git --help'. 
2016-03-04T19:49:05.7031986Z ##[error]Did you mean this? 
2016-03-04T19:49:05.7041987Z ##[error] flow 

Поскольку я ничего не могу установить на размещенные средства, как я должен иметь git lfs доступно?

EDIT В этом вопросе, я не говорю о Git LFS проблемы аутентификации, как описано here. Я строго говорю о вызове git lfs.

Как только вы сможете позвонить git lfs, посмотрите на это answer, чтобы решить проблему аутентификации.

+0

Возможный дубликат [Проверить файлы git-lfs на сборке VSTF] (http://stackoverflow.com/questions/34083386/check-out-git-lfs-files-on-vstf-build) –

+0

@DanielMann The возможные дубликаты разговоров о проблемах с токеном oauth. Он не говорит, что abotu git lfs недоступен из командной строки. – mabead

+0

Теперь поддерживается Git LFS. – jessehouwing

ответ

2

Вы получаете это сообщение об ошибке, так как git-lfs по умолчанию не установлен в Hosted Build Agent.

И поскольку вы используете Hosted Build Agent, было бы немного хлопотно устанавливать git-lfs через Chocolatey, поскольку у вас нет разрешения администратора. Альтернативный способ - загрузить the binary files for git-lfs и загрузить его в Source Control. Затем вы можете вызвать git-tfs.exe с абсолютным путем в вашем скрипте.

0

Если вам разрешено устанавливать программное обеспечение и иметь доступ в Интернет во время сборки, вы можете установить git-lfs с помощью Chocolatey package в задаче cmd/PowerShell перед вашей операцией git-lfs.

1

Вот еще несколько деталей по решению, предоставленному Эдди. git lfs не является встроенной командой. Это git custom command.

Когда вы звоните git lfs, git.exe не знает о команде lfs. Таким образом, он просматривает переменную среды PATH и ищет программу с именем git-lfs.exe. После этого он вызывает эту программу с предоставленным аргументом.

Таким образом, вызов git-lfs.exe pull эквивалентен вызову git.exe lfs pull.

Решение, поэтому рекомендуется загрузить git-lfs.exe, добавить его в git repo (его, очевидно, не отслеживать с помощью LFS), и вызвать git-lfs.exe.

Также возможно добавить папку, содержащую git-lfs.exe, в переменную среды пути. Это позволяет использовать команды типа git.exe lfs pull, как вы обычно это делаете.

1

Git LFS теперь поддерживается по умолчанию в Hosted Build Controller.