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, Вот что он делает:

  1. Это выглядит в вашем .lfsconfig для URL-адреса удаленного LFS-сервера (предположительно, это LFS-репозиторий на сервере Artifactory, к которому подключен CLI). Он загружает список хэшей объектов, содержащихся в этом хранилище.
  2. Он ищет главы всех ваших Git-реферов, расположенных в refs/remotes/* (поэтому он ищет во всех ваших ветках удаленного отслеживания) объекты LFS. Это не означает, что он ищет в этом каталоге объекты. .git/refs/remotes директория содержит имена веток Git, и команда ищет эти ветки.
  3. Он сравнивает список объектов 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

Другие вопросы по тегам