jfrog rt glc ищет подходящие файлы репозитория в refs/remotes/*. git lfs помещает эти файлы в lfs\objects
Когда я использую jfrog rt glc, он хочет удалить все артефакты в репозитории gitlfs в артефакте. Но у меня есть еще один файл в локальном git-репо!
E: \ test-scripts> jfrog rt glc
[Информация] Поиск файлов из хранилища Artifactory lfs-local...
[Информация] Сбор файлов для сохранения из ссылок Git, соответствующих шаблону refs/remotes/*…
[Информация] Найдено 0 файлов для хранения и 3 для очистки
4ee3d767d9126308d6bcf7b7290e85614a83fe51a9d84e765b9b7f4359f79fce
118feab626439e11e6ef3d3d12b3d297c0cccffaf2e34e5b5be7e4276c28678c
cbeffb41253da58f8924423f22a9bd53802633925664d68c46e6bfffd506a33d
Вы уверены, что хотите удалить вышеуказанные файлы? (Г / л):E: \ test-scripts> git lfs ls-files
4ee3d767d9 * xmlstarlet-1.6.1-win32.zip
jfrog RT GLC не ищет правильный каталог!
git lfs помещает артефакты в каталог lfs\objects*, а не в refs/remotes/*
Команда jfrog rt glc --refs='. Git\lfs\objects*' выдает тот же результат.
dir.git \ lfs\objects* / s E: \ test-scripts.git \ lfs \ objects \ 4e \ e3 4ee3d767d9126308d6bcf7b7290e85614a83fe51a9d84e765b9b7f4359f79fce
В '.git\lfs\objects*' еще есть 1 файл
Кто-нибудь сталкивался с этим?
2 ответа
jfrog RT GLC не ищет правильный каталог!
git lfs помещает артефакты в каталог lfs\objects*, а не в refs/remotes/*
Это не то, как работает команда. Он не ищет объекты в .git/lfs/objects
или же .git/refs/remotes
, Вот что он делает:
- Это выглядит в вашем
.lfsconfig
для URL-адреса удаленного LFS-сервера (предположительно, это LFS-репозиторий на сервере Artifactory, к которому подключен CLI). Он загружает список хэшей объектов, содержащихся в этом хранилище. - Он ищет главы всех ваших Git-реферов, расположенных в
refs/remotes/*
(поэтому он ищет во всех ваших ветках удаленного отслеживания) объекты LFS. Это не означает, что он ищет в этом каталоге объекты..git/refs/remotes
директория содержит имена веток Git, и команда ищет эти ветки. - Он сравнивает список объектов LFS, найденных на сервере Artifactory, со списком объектов, найденных в ваших ветках удаленного отслеживания Git. Он готовится удалить объекты с сервера Artifactory, которые также не были найдены в ветвях отслеживания.
Когда ты бежишь git lfs ls-files
, он ищет текущую локальную ветку. Если вы получаете объект обратно из этой команды, rt glc
хочет удалить, потому что либо ваша локальная ветка не актуальна, либо вы не отправили свои изменения в апстрим.
Если вы хотели бы rt glc
чтобы сохранить найденные артефакты как в вашем удаленном отслеживании, так и в локальных филиалах, вы можете передать опцию --refs=refs/remotes/*,refs/heads/*
Я нашел "несоответствие"
Команда jfrog rt glc 'по умолчанию' эталонный образец соответствует нотации каталога unix ( /)
Поэтому для окон вы должны использовать переменную --refs=refs\remotes*, чтобы получить правильную информацию (\)
jfrog.exe = jfrog версия 1.18.0