В моем конвейере Azure есть этап оформления заказа с lfs:true
в моей ветке выпуска.
steps:
- checkout: self
clean: true
lfs: true
При запуске сборки выдается следующая ошибка.
Ошибка загрузки объекта: /Путь/к/DLL-файлу (31a4c7b): Размазать ошибка: Ошибка загрузки /Путь/к/DLL-файлу (31a4c7bxxxxxxxxxxxxxxxxxxxxxxxx): пакетный ответ: ожидаемый тип json, получено: «text/plain; charset=utf-8»
Проблема в том, что когда я запускаю ту же проверку для основной ветки в другом конвейере, она работает нормально. Любые предложения или возможные направления?
Я использую самостоятельный агент
1. Пробовали ли вы создать новую ветку на основе master
и запустить оформление заказа с установкой lfs
на true
? Каков результат? 2. Попробуйте запустить git lfs checkout
на своем локальном компьютере, чтобы проверить ветку выпуска и проверить, есть ли в ней та же ошибка или нет. 3. Попробуйте запустить git lfs pull
в задаче CmdLine@2
в вашем конвейере вместо использования шага checkout
. Будет ли такая же ошибка? Основываясь на текущей информации, мы не уверены, существует ли проблема с файлами в вашей ветке выпуска или в конвейере. Рекомендуется попробовать это, чтобы сузить проблему.
Хорошо, я попробую их и верну
@ZiyangLiu-MSFT 1. Я создал новую ветку master
и попробовал оформить заказ, установив lfs
на true
. Большие файлы загружаются правильно. Затем я создал еще одну новую ветку из ветки выпуска и попробовал оформить заказ, установив для lfs
значение true
. Большие файлы не скачиваются. 2. Когда я попробовал git lfs checkout
на своем локальном компьютере, я получил сообщение Skipped checkout for "/path/to/DLL/file", content not local. Use fetch to download
. Я получаю это сообщение Skipped checkout..
для тех же 92 файлов, которые вижу при запуске конвейера Azure, где написано LFS object not found: [404] LFS object not found
@ZiyangLiu-MSFT 3. Я тоже пробовал это: - task: CmdLine@2 inputs: script: | git checkout /name/of/release/branch git pull git lfs pull
но получаю git: 'credential-manager' is not a git command. See 'git --help'. >The most similar command is >credential-manager-core >fatal: Authentication failed for 'http://xxxxxxxxx/xxxx/xxxx/_git/xxxxxxxx/'
ошибку
Вы также столкнулись с той же ошибкой при локальной проверке. Другие ветки можно успешно проверить. Судя по текущей ситуации, похоже, что в вашей ветке выпуска есть некоторые проблемы с файлом lfs. Вы можете попробовать перенастроить lfs в вашей ветке выпуска. Если ваша ветка релиза может быть успешно извлечена ранее, вы также можете рассмотреть возможность возврата ветки релиза к последнему рабочему коммиту, используя git reset --hard <the hash of the commit>
Мы унаследовали исходный код от другой компании несколько месяцев назад, поэтому я не уверен, была ли успешно проверена ветка выпуска раньше. Мне хотелось бы думать, что да, это должно было произойти, и именно так они, должно быть, смогли сделать предварительный выпуск для клиентов, но у меня нет возможности узнать подробности об этом. Извините, я пытаюсь уточнить, что вы имеете в виду, когда говорите try to reconfigure the lfs in your release branch
. Ваша помощь ценится.
Узнайте, как настроить lfs, из этого документа git lfs и Управляйте большими файлами и храните их в репозитории Azure.
Я запустил git lfs checkout
на своей локальной машине. Я получил сообщение Skipped checkout for "/path/to/DLL/file", content not local. Use fetch to download
о 92 файлах, с которыми у меня возникли проблемы, и в нем были перечислены все 92 файла. Я зашел в ветку master
, скачал эти 92 файла и загрузил их в свою ветку release
. Я запустил сборку, но она все равно не вытянула файлы lfs. Наконец, я удалил все содержимое папки s
, которую конвейер использует во время работы, и снова запустил сборку. На этот раз все сработало как часы и правильно извлекло все файлы lfs.
1. Согласовано ли содержимое ваших веток
release
иmain
? 2. Создайте новую ветку на основеmain
и запустите проверку сlfs
, установленным наtrue
, и проверьте, есть ли та же проблема. 3. Используете ли вы автономный агент или агент, размещенный на MS?