Постепенное преобразование репо для использования git -lfs для определенных файлов. Один файл за раз - PullRequest
0 голосов
/ 02 апреля 2020

У нас есть хранилище с высокой стоимостью и дорогостоящее разрушение.

У него также есть большие XML файлы, которые вызывают значительные проблемы при использовании веб-приложения для слияний и git истории журналов. Кроме того, это может сделать наш CI / CD неэффективным. Другими словами ... обычные вещи, которые побуждают людей переходить на git -lfs.

Мы хотим сделать это осторожно. Один файл за раз.

Я видел подходы, аналогичные перечисленным ниже:

cp *.xml ~/tmp
git rm *.xml
git commit
git lfs track *.xml
git add .gitattributes
git commit; git push

В каталоге fre sh:

git clone --mirror $remote; cd repo
bfg --delete-files '*.xml'
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push

Назад в sr c:

mv repo repo.bloated
git clone $remote; cd repo
cp ~/tmp/*.xml .
git add *.xml # (it now puts them in lfs)
git commit; git push

Как я могу сделать что-то подобное, но просто начните с одного большого файла xml, чтобы уменьшить риск во время этого перехода. Мы предпочитаем быть в легком контакте с разработчиком, поддерживающим этот файл, изолировать изменения и сканировать здесь. Изменение сотен файлов может задержать разработчиков и обойтись дорого.

Мы просто изменим * на указанное c имя файла в приведенном выше примере?

1 Ответ

0 голосов
/ 03 апреля 2020

Если у кого-то есть подобная проблема, мы экспериментировали с этим, и я рад сообщить, что мы смогли безопасно и осторожно это сделать.

Постепенно переход на git lfs работает, и попробовать его для каждого отдельного файла вы можете заменить * конкретным файлом в приведенных выше фрагментах и ​​делать по одному файлу за раз.

Позже вы можете go целую свинью, сколько вам нужно, использовать bfg, et c.

Если вы абсолютно уверены, что хотите сделать это, чтобы попробовать git lfs, вы можете это сделать. Мы сделали это в нашем репо, чтобы лучше ознакомиться с ним перед его широким внедрением, и оно прекрасно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...