Saya memiliki repositori yang sangat lama yang saya gunakan dan pada titik tertentu beberapa file LFS hilang. Cukup banyak dari mereka. Ketika saya mencoba dan mendorong ke repositori baru di Gitlab, saya mendapatkan kesalahan berikut
GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual
QA lainnya untuk git-lfs (di sini, di sini) menunjukkan bahwa biasanya beberapa varian git lfs push --all
tetapi saya tidak memiliki repo yang berfungsi file-file ini lagi dan hilang selamanya. Gitlab mengabaikan dorongan dengan --no-verify dan masih memberikan kesalahan.
Menjalankan git lfs fetch --all
memberikan daftar panjang OID yang hilang
[43cb9e6d1d15bb8d31af911aa69a15a67174c5df73dabc85294ce08198cac468] Object does not exist on the server or you don't have permissions to access it: [404] Object does not exist on the server or you don't have permissions to access it
[454907d530534af9cc95903820c0a632a851b45de98ba18e1de117b8a649f8ac] Object does not exist on the server or you don't have permissions to access it: [404] Object does not exist on the server or you don't have permissions to access it
[ce1314f0c4cb05f349540fa144d33faeb2281ae552cf75dc866a8350d90fd2ac] Object does not exist on the server or you don't have permissions to access it: [404] Object does not exist on the server or you don't have permissions to access it
[d5e8925d273cb00341f00d0f40b39f97cced1e833ef687de2d4663836e7f4e45] Object does not exist on the server or you don't have permissions to access it: [404] Object does not exist on the server or you don't have permissions to access it
...
Postingan lain di sini berisi skrip untuk menghapus LFS sepenuhnya dengan memeriksa setiap melakukan dan mencoreng file LFS, tetapi hal ini tampaknya sangat merugikan repositori di masa mendatang. Yang lain lagi menunjukkan jalur untuk menghapus file LFS seluruhnya (di sini).
Semua masalah ini tampaknya kurang optimal:
- Menghapus LFS akan membuat repo membengkak dan noda tersebut kemungkinan besar akan gagal untuk file yang sudah rusak
- Git pull/push -all bukanlah suatu pilihan karena file-file tersebut hilang untuk selamanya
- Menghapus LFS tidak benar karena versi file yang ada saat ini hanya objek di beberapa cabang di masa lalu yang hilang, jadi semua instruksi tentang cara menghapus LFS akan merusak repo.
Apakah ada cara agar GitLab tidak mengabaikan no-verifikasi atau memfilter OID tertentu secara efisien dari riwayat? Saya tidak keberatan jika file-file tersebut hilang selamanya tetapi saya berharap untuk melestarikan sejarah.
Saya tahu bahwa saya dapat menjalankan git log --all -p -S 43cb9e6d1d15bb8d31af911aa69a15a67174c5df73dabc85294ce08198cac468
untuk mendapatkan komit dan file (walaupun dibutuhkan 5-10 menit untuk menjalankan PER OID, jadi ini akan memakan waktu berjam-jam), tapi saya tidak tahu apa yang harus saya lakukan dengan itu.